Ich möchte json2csv mit installieren, erhalte go get github.com/jehiah/json2csv
aber folgende Fehlermeldung:
package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path
Hilfe zur Behebung dieses Problems unter MacOS?
macos
installation
go
Mona Jalal
quelle
quelle
Antworten:
[Update: ab Go 1.8
GOPATH
standardmäßig$HOME/go
, aber Sie können dies dennoch nützlich finden, wenn Sie dasGOPATH
Layout verstehen , anpassen usw. möchten .]Auf der offiziellen Go-Website werden GOPATH und das Erstellen eines Arbeitsbereichsverzeichnisses erläutert .
export GOPATH="$HOME/your-workspace-dir/"
- Führen Sie es in Ihrer Shell aus und fügen Sie es dann zu~/.bashrc
oder einem gleichwertigen hinzu, damit es in Zukunft für Sie festgelegt wird. Go wird Pakete unter installierensrc/
,bin/
undpkg/
, Verzeichnisse gibt. Sie möchten Ihre eigenen Pakete irgendwo unter ablegen$GOPATH/src
, z. B.$GOPATH/src/github.com/myusername/
wenn Sie auf GitHub veröffentlichen möchten. Sie werden wahrscheinlich auchexport PATH=$PATH:$GOPATH/bin
in Ihrem wollen,.bashrc
damit Sie kompilierte Programme unter ausführen können$GOPATH
.Optional kann über Rob Pike , können Sie auch festlegen ,
CDPATH
so ist es schneller zucd
dirs in bash zu verpacken:export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x
Mittel Sie nur eingeben können ,cd net/html
stattcd $GOPATH/src/golang.org/x/net/html
.Keith Rarick stellt fest , die Sie einstellen können
GOPATH=$HOME
Gos setzensrc/
,pkg/
undbin/
Verzeichnisse direkt unter Ihrem Home - Verzeichnis. Das kann nett sein (zum Beispiel, das Sie vielleicht schon$HOME/bin
auf Ihrem Weg haben), aber natürlich verwenden einige Leute mehrere Arbeitsbereiche usw.quelle
src/
der zBgithub.com/youruser/x
und enthältgithub.com/youruser/y
. Das ist, was ich tue. Die Leute haben vielleicht ihre Gründe, etwas anderes zu tun (Unternehmensrichtlinien, um Projekte auseinander zu halten?), Aber ich kann nicht mit ihnen sprechen.echo $GOPATH
sagt das aus? Es könnte sich lohnen, eine separate Frage zu stellen. Es hört sich so an, als ob Sie sich in einer ungewöhnlichen Situation befinden, und das Debuggen dieser Kommentare kann schwierig sein.export
; Ausführen/bin/bash -c "echo \$GOPATH"
, um zu überprüfen, ob Unterprozesse sehen können$GOPATH
. Wenn es leerexport GOPATH
go get ...
Dieser hat funktioniert
Einrichten der Go-Entwicklungsumgebung unter Ubuntu und Beheben von $ GOPATH / $ GOROOT
Schritte
Setzen Sie $ GOPATH in .bashrc,
quelle
Mit Gebräu
Ich habe es mit installiert
brew
.Wenn Sie diesen Brühbefehl ausführen, werden die folgenden Informationen angezeigt:
Die wichtigsten Stücke dort sind diese Zeilen:
Einrichten der GO-Umgebung
Das zeigt, wo GO installiert wurde. Wir müssen Folgendes tun, um die GO-Umgebung einzurichten:
Sie können dann mit GO überprüfen, ob es richtig konfiguriert ist:
Json2csv einrichten
Sieht gut aus, also installieren wir
json2csv
:Was ist gerade passiert? Es hat es installiert. Sie können dies überprüfen:
OK, warum kann ich
json2csv
meine Shell nicht eingeben? Das liegt daran, dass sich das/bin
Verzeichnis unter$GOPATH
nicht in Ihrem befindet$PATH
.Fügen wir es also vorübergehend hinzu:
Und noch einmal überprüfen:
Jetzt ist es da:
Fügen Sie die Änderungen hinzu, die wir an
$PATH
und$GOPATH
zu Ihrem vorgenommen haben$HOME/.bash_profile
, damit sie zwischen den Neustarts bestehen bleiben.quelle
Ein Video angucken
Im Allgemeinen empfehle ich immer dieses offizielle Video von Go, um einen schnellen Überblick zu erhalten:
http://www.youtube.com/watch?v=XCsL89YtqCs
Es ist einfacher gezeigt zu werden als erzählt zu werden.
@jwfearn umschrieb den wichtigen Teil des Videos:
quelle
Ich fand es einfacher, es so zu machen:
quelle
Für MAC hat das bei mir gut funktioniert.
und fügen Sie das Folgende am Ende der Datei hinzu
Dies sollte das Problem beheben. Versuchen Sie, ein neues Terminal zu öffnen, und geben Sie $ GOPATH wieder. Sie sollten den richtigen Wert sehen.
quelle
(für MAC)
Ich habe all diese Antworten ausprobiert und aus einem noch unbekannten Grund hat keine funktioniert.
Ich musste den GOPATH "zwangsernähren", indem ich die Umgebungsvariable für jeden Befehl festlegte, der dies erforderte. Beispielsweise:
Sogar
glide
gab mir denGOPATH not set
Fehler. Es wurde erneut durch "Zwangsernährung" behoben: Ich habe alle diese Antworten ausprobiert und aus einem noch unbekannten Grund hat keine davon funktioniert.Ich musste den GOPATH "zwangsernähren", indem ich die Umgebungsvariable für jeden Befehl festlegte, der dies erforderte.
Hoffe das hilft jemandem.
quelle
Sie
$GOROOT
sollten nicht eingerichtet werden. Sie$GOPATH
sollten$HOME/go
durch Eingabe eingestellt werdenexport $GOPATH=$HOME/go
Bitte geben Sie ein
export GOROOT=""
, um Ihr Problem zu beheben.quelle
Tu es einfach
export GOPATH="/whatever/you/like/your/GOPATH/to/be"
.quelle
Wenn Sie nach dem
$GOPATH
Einrichten auf dieses Problem stoßen , kann dies daran liegen, dass Sie es mit einer nicht unterstützten Shell ausführen. Ich habe es benutztfish
und es hat nicht funktioniert. Das Starten mit hat gutbash
funktioniert.quelle
Sie können die "Export" -Lösung genau so verwenden, wie es andere vorgeschlagen haben. Ich möchte Ihnen eine weitere Lösung zur dauerhaften Bequemlichkeit anbieten: Sie können einen beliebigen Pfad als GOPATH verwenden, wenn Sie Go-Befehle ausführen.
Zunächst müssen Sie den Namen ein kleines Tool zum Download
gost
: https://github.com/byte16/gost/releases . Wenn Sie Ubuntu verwenden, können Sie die Linux-Version herunterladen ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Dann müssen Sie die folgenden Befehle ausführen, um es zu entpacken:
Sie würden eine ausführbare Datei erhalten
gost
. Sie können es zur/usr/local/bin
bequemen Verwendung verschieben:Führen Sie den folgenden Befehl aus, um den Pfad, den Sie als GOPATH verwenden möchten, in den Pfadbereich einzufügen, der verwaltet
gost
wird. Es ist erforderlich, dem Pfad einen Namen zu geben, den Sie später verwenden würden.Führen Sie einen beliebigen Go-Befehl im folgenden Format aus:
Zum Beispiel wollen Sie laufen
go get github.com/go-sql-driver/mysql
mit/home/foobar/bar
als GOPATH, tun Sie es einfach wie folgt:Es würde Ihnen helfen, den GOPATH festzulegen und den Befehl auszuführen. Aber denken Sie daran , dass Sie den Weg in hinzugefügt haben
gost
‚s pathspace . Wenn Sie sich in einer beliebigen Ebene von Unterverzeichnissen von befinden/home/foobar/bar
, können Sie sogar einfach den folgenden Befehl ausführen, der kurz dasselbe tun würde:gost
ist ein einfaches Go-Tool, mit dem Sie GOPATHs verwalten und Go-Befehle ausführen können. Weitere Informationen zur Verwendung anderer Go-Befehle finden Sie einfachgost help goCmdName
. Wenn Sie beispielsweise mehr darüber erfahren möchteninstall
, geben Sie einfach die folgenden Wörter ein in:Weitere Details finden Sie auch in der README-Datei des Projekts: https://github.com/byte16/gost/blob/master/README.md
quelle
Führen Sie 'go env' aus und sehen Sie, wohin Ihr GOPATH gerade zeigt. Wenn Sie in dieses Verzeichnis wechseln, sollte Ihr Befehl 'go get..etc' funktionieren.
quelle
Dieses Problem trat mir bei Himbeer-Pi auf. Ich hatte mich über den VNC-Client angemeldet. Das Problem blieb trotz des Einstellens und Exportierens des GOPATH bestehen. Dann lief der Befehl "go get" ohne sudo und es funktionierte perfekt.
quelle
Ich musste eine Anwendung als root ausführen (um einen Webserver auf Port 80 zu öffnen). Dies führte zu dem Fehler für mich, da der sudo-Benutzer eine andere Umgebung als der normale Benutzer hat und daher GOPATH nicht festgelegt wurde.
Wenn jemand anderes dieses Problem hat, fügen Sie
-E
es dem Befehl hinzu, wodurch die Benutzerumgebung erhalten bleibt.sudo -E go run main.go
Weitere Informationen finden Sie hier: Google Groups - GOPATH-Problem
quelle