0

目前我有一个像str := "github.com/pkg/errors". 我需要包的完整路径。

目前我如何实现这一点是通过使用build.Default.GOPATH+"/src/"+str.

是否有一种本地非 hacky 方法来解析导入的完整路径(可能在vendor文件夹等中......)。

4

1 回答 1

1

使用go/build包来解析目录的导入路径:

 p, err := build.Default.Import("github.com/pkg/errors", ".", build.FindOnly)
 if err != nil {
     // handle error
 }
 d := p.Dir

此片段解析相对于当前工作目录的本地导入。如果您不想解析本地导入或在适当的情况下提供不同的目录,请替换"."为。""

于 2019-04-13T18:20:44.373 回答