从包导入路径获取包源的完整路径
Getting full path to a package source from the package import path
目前我有一个像str := "github.com/pkg/errors"
这样的参数。我需要包的完整路径。
目前我是通过使用 build.Default.GOPATH+"/src/"+str
.
来实现的
是否有一种原生的非 hacky 方法来解析导入的完整路径(可能在 vendor
文件夹等中...)。
使用 go/build 包将导入路径解析为目录:
p, err := build.Default.Import("github.com/pkg/errors", ".", build.FindOnly)
if err != nil {
// handle error
}
d := p.Dir
此代码段解析 local imports 相对于当前工作目录。如果您不想解析本地导入或提供不同的目录,请将 "."
替换为 ""
。
目前我有一个像str := "github.com/pkg/errors"
这样的参数。我需要包的完整路径。
目前我是通过使用 build.Default.GOPATH+"/src/"+str
.
是否有一种原生的非 hacky 方法来解析导入的完整路径(可能在 vendor
文件夹等中...)。
使用 go/build 包将导入路径解析为目录:
p, err := build.Default.Import("github.com/pkg/errors", ".", build.FindOnly)
if err != nil {
// handle error
}
d := p.Dir
此代码段解析 local imports 相对于当前工作目录。如果您不想解析本地导入或提供不同的目录,请将 "."
替换为 ""
。