~/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
Unabhängig davon, in welcher Struktur sich das Projekt befindet, schlägt dies immer mit derselben Nachricht fehl. Go Build funktioniert perfekt.
Hier ist mein 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"
Dies ist unter Mac OSX Mountain Lion und go wurde mit Homebrew installiert.
$GOPATH/bin
Verzeichnis vorhanden war. Das Erstellen dieses Ordners war erforderlich - ich mussteGOBIN
env var nicht festlegen .PYTHONHOME
anstelle vonGOROOT
undPYTHONPATH
anstelle vonGOPATH
. Auch (GC) C hatLIBRARY_PATH
,C_INCLUDE_PATH
usw.export GOPATH=$PWD
(an der Wurzel eines Golang-Klonbaums stehend) Ihre Antwort den Fehler in diesem Fall möglicherweise nicht erklären kann.GOPATH
, aber von außen betrachtet scheint dies völlig sinnlos zu sein. Warum muss ich globale Umgebungsvariablen mutieren, um ein Paket lokal zu erstellen?Für alle OS X-Benutzer und zukünftige Benutzer müssen Sie außerdem festlegen
GOBIN
, dass diese verwirrende Meldung bei Installation und Installation vermieden wirdgo get
quelle
GOBIN
. Wenn die Einstellung$GOPATH/bin
einen Unterschied macht, stimmt etwas anderes mit Ihrem Setup nicht oder Sie tun etwas, das Sie nicht tun sollten.Sie verwenden go install in einem Verzeichnis außerhalb des GOPATH-Ordners. Legen Sie Ihre GOBIN-Umgebungsvariable fest oder verschieben Sie den src- Ordner in GOPATH.
Weitere Informationen: GO BUILD Quellcode , Zeile 296
quelle
Sie müssen beide
GOPATH
und einrichtenGOBIN
. Stellen Sie sicher, dass Sie Folgendes getan haben (bitte durch~/go
Ihre bevorzugte ersetzenGOPATH
und anschließend ändernGOBIN
). Dies wird am getestetUbuntu 16.04 LTS
.Die ausgewählte Antwort hat das Problem für mich nicht gelöst.
quelle
Sie möchten 3 Verzeichnisse in Ihrem ausgewählten GOPATH-Verzeichnis haben.
Dann führen Sie
go install
entweder someProgram (das eine ausführbare Datei in bin ablegt) oder someLibrary (das eine Bibliothek in pkg ablegt) aus.quelle
Ich hatte dieses Problem unter Windows.
Mein Problem war, dass meine
%GOPATH%
Umgebungsvariable auf gesetzt warC:\Users\john\src\goworkspace
anstatt
C:\Users\john\src\goworkspace\
Das Hinzufügen des fehlenden Schrägstrichs am Ende hat es für mich behoben.
quelle
Für das, was es wert ist, hier ist mein .bash_profile, das für mich auf einem Mac mit Atom gut funktioniert, nachdem ich mit Homebrew installiert habe:
quelle
In meinem Fall (OS X) wurde , weil ich festgelegt
GOPATH
auf/home/username/go
(gemäß dem Buch) statt/Users/username/go
quelle
Ich bin unter Windows und habe es erhalten, indem ich
go help gopath
cmd einen Befehl gegeben und den fetten Text in der Anweisung gelesen habe.Das heißt, wenn sich der Code, unter dem Sie installieren möchten, befindet
..BaseDir...\SomeProject\src\basic\set
, sollte der GOPATH nicht derselbe Speicherort wie der Code sein, sondern nur das Basisprojekt DIR :..BaseDir...\SomeProject
.Wenn GOPATH auf Basisprojekt DIR eingestellt wurde und dieses Problem weiterhin besteht, können Sie in Windows versuchen, GOBIN als
Base Project DIR\bin
oder festzulegen%GOPATH%\bin
.quelle
Vorsicht beim Laufen
Gehen Sie davon aus, dass Ihr Code an bestimmten Stellen im Zusammenhang mit vorhanden ist
GOPATH
. Stattdessen können Sie Docker verwenden, um einen beliebigen Befehl go auszuführen:Und jetzt können Sie einen beliebigen Golang-Befehl verwenden, zum Beispiel:
quelle
In Fenstern war mein cmd-Fenster bereits geöffnet, als ich die Umgebungsvariable GOPATH festlegte. Zuerst musste ich das cmd schließen und dann wieder öffnen, damit es wirksam wurde.
quelle
Das Problem ist, dass Sie sich nicht in dem Paketverzeichnis befinden, in dem sich die go-Datei mit der go-Hauptfunktion befindet, und go install den Befehl (go-Datei mit go-Hauptfunktion), den Sie installieren möchten, nicht finden kann.
und dann ausführen:
quelle
Auf OSX Mojave 10.14,
go
wird normalerweise installiert an/usr/local/go
.Richten Sie daher diese ENVs ein, und Sie sollten bereit sein, loszulegen.
export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin
Fügen Sie diese auch zu Ihrem hinzu
bash_profile
oderzsh_profile
wenn es funktioniert.echo "export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin" >> ~/.bash_profile && source ~/.bash_profile
quelle