Jak zainstalować wymagania w Go? „Nie można znaleźć pakietu”

82

Jestem nowy w Go i próbuję skonfigurować projekt Go z minimalną dokumentacją: https://github.com/alphagov/metadata-api

Sklonowałem go, ale kiedy próbuję go build, otrzymuję następujące ostrzeżenia:

main.go:8:2: cannot find package "github.com/Sirupsen/logrus" in any of:
    /usr/local/Cellar/go/1.3.3/libexec/src/pkg/github.com/Sirupsen/logrus (from $GOROOT)
    /Users/me/go/src/github.com/Sirupsen/logrus (from $GOPATH)
main.go:14:2: cannot find package "github.com/alphagov/metadata-api/content_api" in any of:
    /usr/local/Cellar/go/1.3.3/libexec/src/pkg/github.com/alphagov/metadata-api/content_api (from $GOROOT)
    /Users/me/go/src/github.com/alphagov/metadata-api/content_api (from $GOPATH)

Zgaduję, że dzieje się tak, ponieważ nie zainstalowałem odpowiednika wymagań Go?

Mój GOPATHjest ustawiony:

metadata-api$ echo $GOPATH
/Users/me/go

Plik wykonywalny Go jest w formacie

metadata-ape$ echo $PATH
....:/Users/me/go/bin

Co muszę zrobić, aby pomóc Go znaleźć te pakiety?

Richard
źródło
Aktualizacja: dodałem Idź do mojej ścieżki export PATH=$PATH:/Users/anna/goi teraz go buildnie generuje żadnych błędów ... ale nie wydaje się, aby cokolwiek generował.
Richard

Odpowiedzi:

93

Najpierw zainstaluj pakiet:

próbować

$ go get github.com/Sirupsen/logrus

and check you $GOPATHreż

Ten projekt służy gomjako menedżer pakietów,

Upewnij się, że zainstalowałeś gom

lub spróbuj tego polecenia

$ gom install 

Myślę, że twoje $GOPATHi $PATHustawienia są nieprawidłowe, $GOPATHzmienna środowiskowa określa lokalizację twojego obszaru roboczego, to są moje ustawienia ścieżki:

export GOROOT=$HOME/bin/go
export GOBIN=$GOROOT/bin
export GOPATH=$HOME/golang
export PATH=$PATH:$GOBIN
lidashuang
źródło
1
Dzięki. gom installwydaje się, że działa, ale skąd wiedziałeś, że ten projekt był używany gom?
Richard
14
Próbowałem też na równi go geti myślę, że dostałem wszystkie moje zależności w tym samym czasie.
John Bubriski
Zmienna środowiskowa $ GOPATH określa lokalizację twojego obszaru roboczego? Czy to oznacza, że ​​muszę eksportować wszystkie te zmienne za każdym razem, gdy tworzę nowy projekt obszaru roboczego?
Ugur Yilmaz
27

Miałem podobny problem i

export GO111MODULE=on 

pomógł.

rgaut
źródło
2
Tego też potrzebowałem. Poszedłem szukać, dlaczego - oto podsumowanie: dev.to/maelvls/ ...
Tim Malone
Po prostu spędziłem zbyt długo, próbując dowiedzieć się, dlaczego. Dziękuję Ci za to!!!
cpk
2

Udało mi się naprawić podobny problem w Go 1.13.7, wpisując:

 export GOPATH=~/go
 go get github.com/profile/repository 
 (e.g. github.com/Sirupsen/logrus)
monkrus
źródło