Как заставить импортировать пакеты от поставщика?

Я проверял функцию поставщика в go with glide. Было здорово установить все пакеты, но мне не удалось выполнить команду go, чтобы найти их в пакетах поставщиков.

go run src/main.go

src/main.go:8:2: cannot find package "github.com/valyala/fasthttp" in any of:
   /home/joaonrb/.software/lib/go/go1.7/src/github.com/valyala/fasthttp (from $GOROOT)
   /home/joaonrb/.projects/go-blog/src/github.com/valyala/fasthttp (from $GOPATH)

Fasthttp установлен в /home/joaonrb/.projects/go-blog/src/vendor/github.com/valyala/fasthttp, версия go, которую я использую, — 1.7, а мой GOPATH — /home/joaonrb/.projects/go-blog.


person joaonrb    schedule 16.09.2016    source источник
comment
У вас никогда не должно быть исходных файлов на верхнем уровне $GOPATH/src. Переместите свой main.go в каталог пакета и попробуйте go run оттуда.   -  person JimB    schedule 16.09.2016
comment
Спасибо. Это решает мою проблему.   -  person joaonrb    schedule 16.09.2016


Ответы (1)


Ваша структура GOPATH кажется недействительной. Чтобы сделать то, что вы хотите:

  • Создайте папку «проект», например. $GOPATH/src/myproj.
  • Поместите свой main.go туда.
  • Создайте там папку поставщика, например. $GOPATH/src/myproj/vendor.
  • Поместите github.com/valyala/fasthttp туда.

Это должно сработать.

person Ainar-G    schedule 16.09.2016
comment
Сделал так, ошибка почти такая же. Он пытается найти $GOPATH/src/github.com/valyala/fasthttp, но пакет находится в $GOPATH/go-blog/vendor/github.com/valyala/fasthttp - person joaonrb; 16.09.2016
comment
@joaonrb Это должно быть $GOPATH/**src**/go-blog/vendor/github.com/valyala/fasthttp Смотрите мое редактирование. - person Ainar-G; 16.09.2016