Получение полного пути к источнику пакета из пути импорта пакета - PullRequest
0 голосов
/ 13 апреля 2019

В настоящее время у меня есть такой параметр, как str := "github.com/pkg/errors".Мне нужен полный путь к пакету.

В настоящее время я достигаю этого с помощью build.Default.GOPATH+"/src/"+str.

. Есть ли собственный нелицензионный способ разрешения полного пути к импорту (которыйможет быть в папке vendor и т.д. ...).

1 Ответ

1 голос
/ 13 апреля 2019

Используйте пакет go / build для разрешения пути импорта в каталог:

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

Этот фрагмент разрешает локальный импорт относительно текущего рабочего каталога,Замените "." на "", если вы не хотите разрешать локальный импорт или, если необходимо, укажите другой каталог.

...