no se puede descargar, GOP GOPATH no está configurado
Quiero instalar json2csv usando go get github.com/jehiah/json2csv
pero recibo este error:
package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path
¿Alguna ayuda sobre cómo solucionar esto en macOS?
14 answers
[Actualizar: a partir de la versión 1.8, GOPATH
por defecto es $HOME/go
, pero aún puede encontrar esto útil si desea comprender el diseño de GOPATH
, personalizarlo, etc.]
El sitio oficial de Go discute sobre GOPATH y cómo diseñar un directorio de espacio de trabajo.
export GOPATH="$HOME/your-workspace-dir/"
-- ejecútelo en su shell, luego agréguelo a ~/.bashrc
o equivalente para que se establezca para usted en el futuro. Go instalará paquetes bajo src/
, bin/
, y pkg/
, subdirectorios allí. Usted querrá poner sus propios paquetes en algún lugar debajo de $GOPATH/src
, como $GOPATH/src/github.com/myusername/
si quieres publicar en GitHub. Probablemente también querrá export PATH=$PATH:$GOPATH/bin
en su .bashrc
para que pueda ejecutar programas compilados bajo $GOPATH
.
Opcionalmente, a través de Rob Pike, también puede configurar CDPATH
para que sea más rápido a cd
para empaquetar dirs en bash: export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x
significa que puede simplemente escribir cd net/html
en lugar de cd $GOPATH/src/golang.org/x/net/html
.
Keith Rarick notas puede configurar GOPATH=$HOME
para poner Go's src/
, pkg/
y bin/
directorios justo debajo de su homedir. Eso puede ser bueno (por ejemplo, puede que ya tengas $HOME/bin
en tu camino) pero por supuesto algunas personas usan múltiples espacios de trabajo, etc.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-20 21:57:51
Este funcionó
Configuración del entorno de desarrollo Go en Ubuntu, y cómo arreglar $GOPATH / GOR GOROOT
Pasos
mkdir ~/go
Activa GOP GOPATH .bashrc,
export GOPATH=~/go
export PATH=$PATH:$GOPATH/bin
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-11 02:44:24
Usando cerveza
Lo instalé usando brew
.
$ brew install go
Cuando haya terminado, si ejecuta este comando brew, mostrará la siguiente información:
$ brew info go
go: stable 1.4.2 (bottled), HEAD
Go programming environment
https://golang.org
/usr/local/Cellar/go/1.4.2 (4676 files, 158M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/go.rb
==> Options
--with-cc-all
Build with cross-compilers and runtime support for all supported platforms
--with-cc-common
Build with cross-compilers and runtime support for darwin, linux and windows
--without-cgo
Build without cgo
--without-godoc
godoc will not be installed for you
--without-vet
vet will not be installed for you
--HEAD
Install HEAD version
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
https://golang.org/doc/code.html#GOPATH
You may wish to add the GOROOT-based install location to your PATH:
export PATH=$PATH:/usr/local/opt/go/libexec/bin
Las piezas importantes son estas líneas:
/ usr / local / Cellar / go / 1.4.2 (4676 archivos, 158M) *
Export PATH=PATH PATH:/usr/local/opt/go/libexec / bin
Configurando el entorno de GO
Que muestra dónde se instaló GO. Tenemos que hacer lo siguiente para configurar GO's medio ambiente:
$ export PATH=$PATH:/usr/local/opt/go/libexec/bin
$ export GOPATH=/usr/local/opt/go/bin
Luego puede verificar usando GO para ver si está configurado correctamente:
$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/usr/local/opt/go/bin"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.4.2/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.4.2/libexec/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
Configurar json2csv
Se ve bien, así que vamos a instalar json2csv
:
$ go get github.com/jehiah/json2csv
$
¿Qué acaba de pasar? Lo instaló. Usted puede comprobar así:
$ $ ls -l $GOPATH/bin
total 5248
-rwxr-xr-x 1 sammingolelli staff 2686320 Jun 9 12:28 json2csv
Bien, entonces, ¿por qué no puedo escribir json2csv
en mi shell? Esto se debe a que el directorio /bin
bajo $GOPATH
no está en su $PATH
.
$ type -f json2csv
-bash: type: json2csv: not found
Así que vamos a añadirlo temporalmente:
$ export PATH=$GOPATH/bin:$PATH
Y volver a comprobar:
$ type -f json2csv
json2csv is hashed (/usr/local/opt/go/bin/bin/json2csv)
Ahora está ahí: {[22]]}
$ json2csv --help
Usage of json2csv:
-d=",": delimiter used for output values
-i="": /path/to/input.json (optional; default is stdin)
-k=[]: fields to output
-o="": /path/to/output.json (optional; default is stdout)
-p=false: prints header to output
-v=false: verbose output (to stderr)
-version=false: print version string
Añade las modificaciones que hemos hecho a $PATH
y $GOPATH
a tu $HOME/.bash_profile
para que persistan entre reinicios.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-09 16:31:28
Ver un vídeo
En general, siempre recomiendo este video oficial de Go para obtener una visión general rápida sobre el asunto:
Http://www.youtube.com/watch?v=XCsL89YtqCs
Es más fácil ser mostrado que ser dicho.
@jwfearn parafraseó la parte importante del video:
export GOPATH="${HOME}/gocode"; export PATH="${PATH}:${GOPATH}/bin"; mkdir -p "${GOPATH}"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-08 06:24:01
Para MAC esto funcionó bien para mí.
sudo nano /etc/bashrc
Y añadir lo siguiente al final del archivo
export PATH=$PATH:/usr/local/opt/go/libexec/bin
export GOPATH=/usr/local/opt/go/bin
Esto debería solucionar el problema. Intente abrir un nuevo terminal y echo GOP GOPATH debería ver el valor correcto.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-14 18:54:26
Me pareció más fácil hacerlo así:
export GOROOT=$HOME/go
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-04 10:33:44
(para MAC)
Probé todas estas respuestas y, por alguna razón aún desconocida, ninguna funcionó.
Tuve que "forzar la alimentación" del GOPATH estableciendo la variable de entorno por cada comando que lo requería. Por ejemplo:
sudo env GOPATH=$HOME/goWorkDirectory go build ...
Incluso glide
me estaba dando el error GOPATH not set
. Resuelto, de nuevo, por " alimentación forzada":
Probé todas estas respuestas y, por alguna razón aún desconocida, ninguna funcionó.
Tuve que "forzar la alimentación" de la GOPATH por establecer la variable de entorno por cada comando que requiere.
sudo env GOPATH=$HOME/goWorkDirectory glide install
Espero que esto ayude a alguien.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-24 21:18:42
Su $GOROOT
no debe configurarse.
Usted $GOPATH
debe establecerse en $HOME/go
escribiendo export $GOPATH=$HOME/go
Por Favor, escriba export GOROOT=""
para solucionar su problema.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-19 13:29:55
Simplemente haz export GOPATH="/whatever/you/like/your/GOPATH/to/be"
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-17 08:44:29
Si se encuentra con este problema después de haber configurado $GOPATH
, puede ser porque lo está ejecutando con un shell no compatible. Estaba usando fish
y no funcionó, lanzarlo con bash
funcionó bien.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-08 14:19:06
Puede utilizar la solución "exportar" al igual que lo que otros chicos han sugerido. Me gustaría ofrecerle otra solución para una comodidad permanente: puede usar cualquier ruta como GOPATH cuando ejecuta comandos Go.
En primer lugar, debe descargar una pequeña herramienta llamada gost
: https://github.com/byte16/gost/releases . Si utiliza ubuntu, puede descargar linux version(https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz).
Entonces necesitas ejecutar los siguientes comandos para desempaquetarlo:
$ cd /path/to/your/download/directory
$ tar -xvf gost_linux_amd64.tar.gz
Obtendrías un ejecutable gost
. Puede moverlo a /usr/local/bin
para un uso conveniente:
$ sudo mv gost /usr/local/bin
Ejecute el siguiente comando para agregar la ruta que desea usar como GOPATH en el espacio de ruta gost
mantiene. Es necesario darle a la ruta un nombre que usaría más adelante.
$ gost add foo /home/foobar/bar # 'foo' is the name and '/home/foobar/bar' is the path
Ejecutar cualquiera Ir comando que desea en el formato:
gost goCommand [-p {pathName}] -- [goFlags...] [goArgs...]
Por ejemplo, desea ejecutar go get github.com/go-sql-driver/mysql
con /home/foobar/bar
como GOPATH, simplemente hágalo de la siguiente manera:
$ gost get -p foo -- github.com/go-sql-driver/mysql # 'foo' is the name you give to the path above.
Te ayudaría establecer la GOPATH y ejecutar el comando. Pero recuerda que has añadido la ruta a gost
's pathspace. Si está bajo cualquier nivel de subdirectorios de /home/foobar/bar
, incluso puede ejecutar el comando a continuación que haría lo mismo para abreviar :
$ gost get -- github.com/go-sql-driver/mysql
gost
es una sencilla Herramienta de Go que puede ayudar usted para administrar GOPATHs y ejecutar comandos Go. Para obtener más detalles sobre cómo usarlo para ejecutar otros comandos Go, simplemente puede ejecutar gost help goCmdName
. Por ejemplo, si desea saber más sobre install
, simplemente escriba las palabras a continuación en:
$ gost help install
También puedes encontrar más detalles en el README del proyecto: https://github.com/byte16/gost/blob/master/README.md
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-28 09:00:41
Ejecute 'go env' y vea hacia dónde está apuntando su GOPATH actualmente. Si cambia a ese directorio, su ' go get..el comando etc ' debería funcionar.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-09 00:24:19
Este problema me ocurrió en raspberry pi. Había iniciado sesión a través del cliente VNC El problema persistió a pesar de establecer y exportar la GOPATH. Luego ejecutó el comando" go get " sin sudo y funcionó perfectamente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-20 10:09:21
Tuve que ejecutar una aplicación como root (para abrir un servidor web en el puerto 80), esto me produjo el error, porque el usuario sudo tiene un entorno diferente al usuario normal, por lo que GOPATH no estaba configurado.
Si alguien tiene este problema, agregue -E
al comando, esto preservará el entorno del usuario.
sudo -E go run main.go
Para obtener más información, consulte la discusión aquí: Google Groups-GOPATH Problem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-03 11:19:30