Получение полного пути к источнику пакета из пути импорта пакета
В настоящее время у меня есть параметр, как str := "github.com/pkg/errors"
, Мне нужен полный путь к пакету.
В настоящее время, как я могу достичь этого, используя build.Default.GOPATH+"/src/"+str
,
Есть ли родной нехакерский способ разрешения полного пути к импорту (который может быть в vendor
папка и т.д...).
1 ответ
Решение
Используйте пакет go / build для разрешения пути импорта в каталог:
p, err := build.Default.Import("github.com/pkg/errors", ".", build.FindOnly)
if err != nil {
// handle error
}
d := p.Dir
Этот фрагмент разрешает локальный импорт относительно текущего рабочего каталога. замещать "."
с ""
если вы не хотите разрешать локальный импорт или предоставлять другой каталог, если это необходимо.