~/src/go-statsd-client> echo $GOPATH
/Users/me/gopath
~/src/go-statsd-client> echo $GOROOT
/usr/local/Cellar/go/1.1.1\
~/src/go-statsd-client> go install
go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH
Bez względu na to, w jakiej strukturze jest projekt, zawsze kończy się to tym samym przesłaniem. Idź kompilacja działa idealnie.
Tutaj jest mój go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/me/gopath"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.1.1"
GOTOOLDIR="/usr/local/Cellar/go/1.1.1/pkg/tool/darwin_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"
CGO_ENABLED="1"
To jest na Mac OSX Mountain Lion i go został zainstalowany z homebrew.
$GOPATH/bin
katalogu. Utworzenie tego folderu było potrzebne - nie musiałem ustawiaćGOBIN
env var.PYTHONHOME
zamiastGOROOT
iPYTHONPATH
zamiastGOPATH
. Nawet (GC) C maLIBRARY_PATH
,C_INCLUDE_PATH
itpexport GOPATH=$PWD
(stojąc u podstawy drzewa klonów Golang), twoja odpowiedź nie może prawdopodobnie wyjaśnić błędu w tym przypadku.GOPATH
, ale patrząc z zewnątrz, wydaje się to całkowicie bezmyślne. Dlaczego muszę mutować globalne zmienne środowiskowe tylko po to, aby zbudować pakiet lokalnie 🤔Dla każdego użytkownika OS X i przyszłego mnie, musisz również ustawić,
GOBIN
aby uniknąć tego mylącego komunikatu podczas instalacji igo get
źródło
GOBIN
. Jeśli ustawienie tego$GOPATH/bin
robi różnicę, oznacza to, że coś innego jest nie tak z twoją konfiguracją lub robisz coś, czego nie powinieneś.Używasz go install w katalogu poza folderem GOPATH. Ustaw zmienną env GOBIN lub przenieś folder src do GOPATH.
Więcej informacji: GO BUILD Kod źródłowy , wiersz 296
źródło
Musisz skonfigurować zarówno
GOPATH
iGOBIN
. Upewnij się, że wykonałeś następujące czynności (wymień~/go
na preferowany,GOPATH
a następnie zmieńGOBIN
). To jest testowaneUbuntu 16.04 LTS
.Wybrana odpowiedź nie rozwiązała za mnie problemu.
źródło
Będziesz chciał mieć 3 katalogi w wybranym katalogu GOPATH.
Następnie uruchomisz
go install
z wnętrza someProgram (który umieszcza plik wykonywalny w bin) lub someLibrary (który umieszcza bibliotekę w pkg).źródło
Miałem ten problem w systemie Windows.
Mój problem polegał na tym, że moja
%GOPATH%
zmienna środowiskowa została ustawiona naC:\Users\john\src\goworkspace
zamiast
C:\Users\john\src\goworkspace\
Dodanie brakującego ukośnika na końcu rozwiązało problem.
źródło
Oto mój .bash_profile, który działa dobrze na komputerze Mac z Atomem, po zainstalowaniu go z Homebrew:
źródło
W moim przypadku (OS X), to dlatego, że mam ustawiony
GOPATH
na/home/username/go
(jak na książki) zamiast/Users/username/go
źródło
Jestem na Windowsie i otrzymałem to, wydając polecenie
go help gopath
cmd i przeczytałem pogrubiony tekst w instrukcji,czyli jeśli kod Państwo przeciwnym razie możesz zainstalować to w
..BaseDir...\SomeProject\src\basic\set
The GOPATH nie powinno być takie samo położenie jak kod, powinien być tylko podstawowa Projekt DIR:..BaseDir...\SomeProject
.jeśli GOPATH został ustawiony na Base Project DIR i nadal występuje ten problem, w systemie Windows możesz spróbować ustawić GOBIN jako
Base Project DIR\bin
lub%GOPATH%\bin
.źródło
Ostrożnie podczas biegania
Załóżmy, że twój kod istnieje w określonych miejscach związanych z
GOPATH
. Zamiast tego możesz użyć dockera do uruchomienia dowolnego polecenia go:A teraz możesz użyć dowolnego polecenia golang, na przykład:
źródło
W systemie Windows moje okno cmd było już otwarte, gdy ustawiłem zmienną środowiskową GOPATH. Najpierw musiałem zamknąć cmd, a następnie ponownie otworzyć, aby zadziałał.
źródło
Problem polega na tym, że nie jesteś w katalogu pakietu, w którym znajduje się plik go z funkcją go main, a polecenie go install nie może znaleźć polecenia (plik go z funkcją główną go), które chcesz zainstalować.
a następnie uruchom:
źródło
W systemie OSX Mojave 10.14
go
jest zwykle instalowany pod adresem/usr/local/go
.Dlatego skonfiguruj te ENV i powinieneś być gotowy.
export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin
Dodaj je również do swojego
bash_profile
lubzsh_profile
jeśli działa.echo "export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin" >> ~/.bash_profile && source ~/.bash_profile
źródło