目前,我有一个类似str := "github.com/pkg/errors"
的参数。我需要包的完整路径。
目前,我是通过使用build.Default.GOPATH+"/src/"+str
来实现这一目标的。
是否存在一种本机的非hacky方式来解析导入的完整路径(可能在vendor
文件夹中,等等。)
答案 0 :(得分:1)
使用go/build包来解析目录的导入路径:
p, err := build.Default.Import("github.com/pkg/errors", ".", build.FindOnly)
if err != nil {
// handle error
}
d := p.Dir
此代码段相对于当前工作目录解析local imports。如果您不想解析本地导入或在合适的情况下提供其他目录,请用"."
替换""
。