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?
macos
installation
go
Mona Jalal
fuente
fuente
Respuestas:
[Actualización: a partir de Go 1.8, por
GOPATH
defecto$HOME/go
, pero aún puede encontrar esto útil si desea comprender elGOPATH
diseño, personalizarlo, etc.]El sitio oficial de Go trata 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~/.bashrc
o equivalente para que esté configurado para usted en el futuro. Ir instalará los paquetes debajosrc/
,bin/
ypkg/
, subdirectorios allí. Querrá colocar sus propios paquetes en algún lugar$GOPATH/src
, como$GOPATH/src/github.com/myusername/
si desea publicar en GitHub. Probablemente también deseeexport PATH=$PATH:$GOPATH/bin
en su.bashrc
para que pueda ejecutar programas compilados en$GOPATH
.Opcionalmente, a través de Rob Pike , también puede configurarlo
CDPATH
para que sea más rápidocd
empaquetar directorios en bash:export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x
significa que puede escribir encd net/html
lugar decd $GOPATH/src/golang.org/x/net/html
.Keith Rarick señala puede configurar
GOPATH=$HOME
para poner Gosrc/
,pkg/
ybin/
directorios justo debajo de su directorio raíz. Eso puede ser agradable (por ejemplo, es posible que ya tenga$HOME/bin
en su camino) pero, por supuesto, algunas personas usan múltiples espacios de trabajo, etc.fuente
src/
contiene, por ejemplo,github.com/youruser/x
ygithub.com/youruser/y
. Eso es lo que hago. Las personas pueden tener sus razones para hacer lo contrario (¿política de la compañía para mantener los proyectos separados?), Pero no puedo hablar de eso.echo $GOPATH
dice? Puede valer la pena publicarlo como una pregunta separada; parece que estás en una situación inusual, y depurarlos en los comentarios puede ser complicado.export
; ejecutar/bin/bash -c "echo \$GOPATH"
para verificar que los subprocesos puedan ver$GOPATH
; si se hace eco vacío, entonces correexport GOPATH
y luegogo get ...
Este funcionó
Configurar el entorno de desarrollo Go en Ubuntu y cómo solucionar $ GOPATH / $ GOROOT
Pasos
Establezca $ GOPATH en .bashrc,
fuente
Usando cerveza
Lo instalé usando
brew
.Cuando haya terminado, si ejecuta este comando de preparación, mostrará la siguiente información:
Las piezas importantes son estas líneas:
Configurando el entorno de GO
Eso muestra dónde se instaló GO. Necesitamos hacer lo siguiente para configurar el entorno de GO:
Luego puede verificar con GO para ver si está configurado correctamente:
Configurando json2csv
Se ve bien, así que vamos a instalar
json2csv
:¿Lo que acaba de suceder? Lo instaló. Puedes marcar así:
OK, entonces ¿por qué no puedo escribir
json2csv
mi shell? Eso es porque el/bin
directorio debajo$GOPATH
no está en tu$PATH
.Así que vamos a agregarlo temporalmente:
Y vuelva a verificar:
Ahora está ahí:
Agregue las modificaciones que hemos realizado en
$PATH
y$GOPATH
para$HOME/.bash_profile
que persistan entre reinicios.fuente
Ver un video
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 contado.
@jwfearn parafraseó la parte importante del video:
fuente
Me resultó más fácil hacerlo así:
fuente
Para MAC esto funcionó bien para mí.
y agregue el siguiente al final del archivo
Esto debería solucionar el problema. Intente abrir una nueva terminal y haga eco de $ GOPATH, debería ver el valor correcto.
fuente
(para Mac)
Intenté todas estas respuestas y, por alguna razón aún desconocida, ninguna funcionó.
Tuve que "forzar la alimentación" del GOPATH configurando la variable de entorno por cada comando que lo requería. Por ejemplo:
Incluso
glide
me estaba dando elGOPATH not set
error. Lo resolví, nuevamente, mediante "alimentación forzada": probé todas estas respuestas y, por alguna razón aún desconocida, ninguna funcionó.Tuve que "forzar la alimentación" del GOPATH configurando la variable de entorno por cada comando que lo requería.
Espero que esto ayude a alguien.
fuente
Su
$GOROOT
no debe ser configurado. Usted$GOPATH
debe ser fijado a$HOME/go
por tipificaciónexport $GOPATH=$HOME/go
Escribe
export GOROOT=""
para solucionar tu problema.fuente
Solo hazlo
export GOPATH="/whatever/you/like/your/GOPATH/to/be"
.fuente
Si se encuentra con este problema después de haberlo
$GOPATH
configurado, puede ser porque lo está ejecutando con un shell no compatible. Estaba usandofish
y no funcionó, lanzarlobash
funcionó bien.fuente
Puede usar la solución "exportar" tal como lo han sugerido otros usuarios. Me gustaría proporcionarle otra solución para su conveniencia permanente: puede usar cualquier ruta como GOPATH cuando ejecute los comandos Go.
En primer lugar, debe descargar una pequeña herramienta llamada
gost
: https://github.com/byte16/gost/releases . Si usa ubuntu, puede descargar la versión de Linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Luego debe ejecutar los siguientes comandos para descomprimirlo:
Conseguirías un ejecutable
gost
. Puede moverlo/usr/local/bin
para un uso conveniente:Ejecute el siguiente comando para agregar la ruta que desea utilizar como GOPATH en el espacio de ruta que
gost
mantiene. Es necesario darle a la ruta un nombre que usaría más adelante.Ejecute cualquier comando Go que desee en el formato:
Por ejemplo, desea ejecutar
go get github.com/go-sql-driver/mysql
con/home/foobar/bar
GOPATH, simplemente hágalo de la siguiente manera:Le ayudaría a configurar el GOPATH y ejecutar el comando. Pero recuerde que ha agregado la ruta en
gost
el espacio de ruta . Si está bajo cualquier nivel de subdirectorios de/home/foobar/bar
, incluso puede ejecutar el siguiente comando que haría lo mismo para abreviar:gost
es una herramienta simple de Go que puede ayudarlo a administrar GOPATHs y ejecutar comandos Go. Para obtener más detalles sobre cómo usarlo para ejecutar otros comandos Go, simplemente puede ejecutarlogost help goCmdName
. Por ejemplo, desea saber másinstall
, simplemente escriba las palabras a continuación en:También puede encontrar más detalles en el archivo README del proyecto: https://github.com/byte16/gost/blob/master/README.md
fuente
Ejecute 'go env' y vea hacia dónde apunta actualmente su GOPATH. Si cambia a ese directorio, su comando 'go get..etc' debería funcionar.
fuente
Este problema se me ocurrió en la frambuesa pi. Había iniciado sesión a través del cliente VNC. El problema persistió a pesar de configurar y exportar GOPATH. Luego ejecutó el comando "ir a buscar" sin sudo y funcionó perfectamente.
fuente
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 de sudo tiene un entorno diferente al usuario normal, por lo tanto, GOPATH no se configuró.
Si alguien más tiene este problema, agréguelo
-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í: Grupos de Google - Problema GOPATH
fuente