Chcę zainstalować json2csv przy użyciu, go get github.com/jehiah/json2csv
ale pojawia się ten błąd:
package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path
Jakaś pomoc, jak to naprawić na MacOS?
macos
installation
go
Mona Jalal
źródło
źródło
Odpowiedzi:
[Aktualizacja: od wersji Go 1.8
GOPATH
domyślnie$HOME/go
, ale nadal może się to przydać, jeśli chcesz zrozumiećGOPATH
układ, dostosować go itp.]Oficjalna witryna Go omawia GOPATH i sposób rozmieszczenia katalogu obszaru roboczego .
export GOPATH="$HOME/your-workspace-dir/"
- uruchom go w swojej powłoce, a następnie dodaj do~/.bashrc
lub równoważny, aby został ustawiony dla Ciebie w przyszłości. Go zainstaluje pakiety w sekcjisrc/
,bin/
ipkg/
, podkatalogi. Będziesz chciał umieścić swoje własne pakiety gdzieś pod$GOPATH/src
, na przykład$GOPATH/src/github.com/myusername/
jeśli chcesz opublikować w GitHub. Prawdopodobnie będziesz także chciałexport PATH=$PATH:$GOPATH/bin
w swoim.bashrc
, abyś mógł uruchamiać skompilowane programy pod$GOPATH
.Opcjonalnie, za pośrednictwem Roba Pike'a , możesz również ustawić
CDPATH
tak, aby szybciejcd
pakować katalogi w bash:export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x
oznacza to, że możesz po prostu pisaćcd net/html
zamiastcd $GOPATH/src/golang.org/x/net/html
.Keith Rarick zauważa, można ustawić
GOPATH=$HOME
, aby umieścić Gosrc/
,pkg/
abin/
katalogi tuż pod homedir. To może być miłe (na przykład możesz już mieć$HOME/bin
na swojej ścieżce), ale oczywiście niektórzy ludzie używają wielu obszarów roboczych itp.źródło
src/
zawiera npgithub.com/youruser/x
igithub.com/youruser/y
. To jest to co robię. Ludzie mogą mieć swoje powody, by postąpić inaczej (polityka firmy dotycząca oddzielenia projektów?), Ale nie mogę o tym mówić.echo $GOPATH
mówi? Warto zadać je jako osobne pytanie; Wygląda na to, że jesteś w niecodziennej sytuacji, a debugowanie tych w komentarzach może być trudne.export
tego; uruchom,/bin/bash -c "echo \$GOPATH"
aby sprawdzić, czy podprocesy widzą$GOPATH
; jeśli echo jest puste, uruchom,export GOPATH
a następniego get ...
Ten działał
Konfiguracja środowiska programistycznego Go na Ubuntu i jak naprawić $ GOPATH / $ GOROOT
Kroki
Ustaw $ GOPATH w .bashrc,
źródło
Za pomocą naparu
Zainstalowałem go za pomocą
brew
.Po zakończeniu, jeśli uruchomisz to polecenie parzenia, wyświetli się następujące informacje:
Najważniejsze elementy to te wiersze:
Konfigurowanie środowiska GO
To pokazuje, gdzie zainstalowano GO. Aby skonfigurować środowisko GO, musimy wykonać następujące czynności:
Następnie możesz sprawdzić za pomocą GO, czy jest poprawnie skonfigurowany:
Konfigurowanie json2csv
Wygląda dobrze, więc zainstalujmy
json2csv
:Co się stało? Zainstalował go. Możesz sprawdzić w ten sposób:
OK, więc dlaczego nie mogę wpisać
json2csv
w mojej powłoce? Dzieje się tak, ponieważ/bin
katalogu$GOPATH
nie ma na twoim$PATH
.Dodajmy więc tymczasowo:
I sprawdź ponownie:
Teraz jest tam:
Dodaj modyfikacje, które wprowadziliśmy do
$PATH
i$GOPATH
do Twojego,$HOME/.bash_profile
aby zachować je między ponownymi uruchomieniami.źródło
Obejrzyj wideo
Ogólnie rzecz biorąc, zawsze polecam ten oficjalny film z Go, aby uzyskać szybki przegląd sprawy:
http://www.youtube.com/watch?v=XCsL89YtqCs
Łatwiej jest pokazać, niż powiedzieć.
@jwfearn sparafrazował ważną część filmu:
źródło
Okazało się, że łatwiej to zrobić w ten sposób:
źródło
W przypadku MAC to działało dobrze.
i dodaj poniżej na końcu pliku
To powinno rozwiązać problem. Spróbuj otworzyć nowy terminal i powtórz polecenie $ GOPATH, powinieneś zobaczyć poprawną wartość.
źródło
(dla Maca)
Wypróbowałem wszystkie te odpowiedzi iz jakiegoś wciąż nieznanego powodu żadna z nich nie zadziałała.
Musiałem „wymusić podawanie” GOPATH, ustawiając zmienną środowiskową dla każdego polecenia, które tego wymagało. Na przykład:
Nawet
glide
dawał miGOPATH not set
błąd. Rozwiązałem to ponownie przez „karmienie na siłę”: wypróbowałem wszystkie te odpowiedzi i z jakiegoś wciąż nieznanego powodu żadna z nich nie zadziałała.Musiałem „wymusić podawanie” GOPATH, ustawiając zmienną środowiskową dla każdego polecenia, które tego wymagało.
Mam nadzieję, że to komuś pomoże.
źródło
Twój
$GOROOT
nie powinien być skonfigurowany. Państwo$GOPATH
powinno być ustawione$HOME/go
przez wpisywanieexport $GOPATH=$HOME/go
Wpisz,
export GOROOT=""
aby rozwiązać problem.źródło
Po prostu zrób
export GOPATH="/whatever/you/like/your/GOPATH/to/be"
.źródło
Jeśli napotkasz ten problem po
$GOPATH
skonfigurowaniu, może to być spowodowane tym, że uruchamiasz go z nieobsługiwaną powłoką. Używałemfish
i to nie działa, uruchomienie go zbash
działało.źródło
Możesz użyć rozwiązania „eksportu”, tak jak sugerowali inni faceci. Chciałbym zapewnić Ci inne rozwiązanie zapewniające stałą wygodę: możesz użyć dowolnej ścieżki jako GOPATH podczas uruchamiania poleceń Go.
Najpierw musisz pobrać małe narzędzie o nazwie
gost
: https://github.com/byte16/gost/releases . Jeśli używasz ubuntu, możesz pobrać wersję linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Następnie musisz uruchomić poniższe polecenia, aby go rozpakować:
Otrzymasz plik wykonywalny
gost
. Można przenieść go/usr/local/bin
do wygodnego użytkowania:Uruchom poniższe polecenie, aby dodać ścieżkę, której chcesz użyć jako GOPATH, do obszaru ścieżki
gost
. Wymagane jest nadanie ścieżce nazwy, której będziesz używać później.Uruchom dowolne polecenie Go w formacie:
Na przykład, chcesz uruchomić
go get github.com/go-sql-driver/mysql
z/home/foobar/bar
jak GOPATH, zrób to jak poniżej:Pomogłoby ci to ustawić GOPATH i uruchomić polecenie. Ale pamiętaj, że dodałeś ścieżkę do
gost
„s pathspace . Jeśli jesteś na jakimkolwiek poziomie podkatalogów/home/foobar/bar
, możesz nawet uruchomić poniższe polecenie, które w skrócie zrobiłoby to samo:gost
to proste narzędzie Go, które może pomóc w zarządzaniu GOPATHami i uruchamianiu poleceń Go. Aby uzyskać więcej informacji na temat używania go do uruchamiania innych poleceń Go, możesz po prostu uruchomićgost help goCmdName
. Na przykład chcesz dowiedzieć się więcejinstall
, po prostu wpisz poniższe słowa w:Więcej szczegółów znajdziesz również w README projektu: https://github.com/byte16/gost/blob/master/README.md
źródło
Uruchom „go env” i zobacz, gdzie aktualnie wskazuje GOPATH. Jeśli przejdziesz do tego katalogu, polecenie „go get..etc” powinno działać.
źródło
Ten problem wystąpił u mnie w raspberry pi. Zalogowałem się przez klienta VNC. Problem nie ustąpił pomimo ustawienia i wyeksportowania GOPATH. Następnie uruchomiono polecenie „go get” bez sudo i działało idealnie.
źródło
Musiałem uruchomić aplikację jako root (aby otworzyć serwer WWW na porcie 80), spowodowało to błąd, ponieważ użytkownik sudo ma inne środowisko niż zwykły użytkownik, dlatego GOPATH nie został ustawiony.
Jeśli ktoś ma ten problem, dodaj
-E
do polecenia, to zachowa środowisko użytkownika.sudo -E go run main.go
Aby uzyskać więcej informacji, zobacz dyskusję tutaj: Grupy dyskusyjne - problem GOPATH
źródło