Quero instalar o json2csv usando, go get github.com/jehiah/json2csv
mas recebo este erro:
package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path
Alguma ajuda sobre como corrigir isso no MacOS?
macos
installation
go
Mona Jalal
fonte
fonte
Respostas:
[Atualização: a partir do Go 1.8, o
GOPATH
padrão é$HOME/go
, mas você ainda pode achar isso útil se quiser entender oGOPATH
layout, personalizá-lo etc.]O site oficial da Go discute GOPATH e como criar um diretório de espaço de trabalho .
export GOPATH="$HOME/your-workspace-dir/"
- execute-o no seu shell e adicione-o~/.bashrc
ou equivalente para que seja definido para você no futuro. Go irá instalar pacotes sobsrc/
,bin/
epkg/
, subdiretórios lá. Você vai querer colocar seus próprios pacotes em algum lugar$GOPATH/src
, como$GOPATH/src/github.com/myusername/
se você quiser publicar no GitHub. Provavelmente você também precisará doexport PATH=$PATH:$GOPATH/bin
seu.bashrc
para poder executar programas compilados em$GOPATH
.Opcionalmente, via Rob Pike , você também pode definir
CDPATH
para que seja mais rápidocd
empacotar dirs no bash:export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x
significa que você pode digitar emcd net/html
vez decd $GOPATH/src/golang.org/x/net/html
.Keith Rarick observa que você pode definir
GOPATH=$HOME
para colocar Gosrc/
,pkg/
ebin/
diretórios bem debaixo do seu homedir. Isso pode ser bom (por exemplo, você já deve ter$HOME/bin
no seu caminho), mas é claro que algumas pessoas usam vários espaços de trabalho, etc.fonte
src/
contenha, por exemplo,github.com/youruser/x
egithub.com/youruser/y
. Isto é o que eu faço. As pessoas podem ter seus motivos para agir de outra forma (política da empresa para manter projetos separados?), Mas não posso falar sobre isso.echo $GOPATH
diz? Pode valer a pena postar como uma pergunta separada; parece que você está em uma situação incomum, e depurar os comentários pode ser complicado.export
ter; execute/bin/bash -c "echo \$GOPATH"
para verificar se os subprocessos podem ver$GOPATH
; se Echos esvaziar, em seguida, executarexport GOPATH
e depoisgo get ...
Este funcionou
Configurando o ambiente de desenvolvimento Go no Ubuntu e como corrigir $ GOPATH / $ GOROOT
Passos
Defina $ GOPATH em .bashrc,
fonte
Usando fermentação
Eu instalei usando
brew
.Quando estiver pronto, se você executar este comando brew, ele mostrará as seguintes informações:
As peças importantes existem estas linhas:
Configurando o ambiente do GO
Isso mostra onde o GO foi instalado. Precisamos fazer o seguinte para configurar o ambiente do GO:
Você pode verificar usando GO para ver se está configurado corretamente:
Configurando o json2csv
Parece bom, então vamos instalar
json2csv
:O que acabou de acontecer? Ele instalou. Você pode verificar assim:
OK, então por que não consigo digitar
json2csv
meu shell? Isso ocorre porque o/bin
diretório abaixo$GOPATH
não está no seu$PATH
.Então, vamos adicioná-lo temporariamente:
E verifique novamente:
Agora está lá:
Adicione as modificações que fizemos
$PATH
e$GOPATH
ao seu$HOME/.bash_profile
para fazê-las persistir entre as reinicializações.fonte
Assista um video
Em geral, eu sempre recomendo este vídeo oficial do Go para obter uma visão geral rápida do assunto:
http://www.youtube.com/watch?v=XCsL89YtqCs
É mais fácil ser mostrado do que ser informado.
@jwfearn parafraseou a parte importante do vídeo:
fonte
Achei mais fácil fazer assim:
fonte
Para o MAC, isso funcionou bem para mim.
e adicione o abaixo no final do arquivo
Isto deve resolver o problema. Tente abrir um novo terminal e ecoe $ GOPATH, você deve ver o valor correto.
fonte
(para MAC)
Tentei todas essas respostas e, por alguma razão ainda desconhecida, nenhuma delas funcionou.
Eu tive que "forçar a alimentação" do GOPATH definindo a variável de ambiente para cada comando que exigisse. Por exemplo:
Even
glide
estava me dando oGOPATH not set
erro. Resolvi, novamente, por "alimentação forçada": tentei todas essas respostas e, por alguma razão ainda desconhecida, nenhuma delas funcionou.Eu tive que "forçar a alimentação" do GOPATH definindo a variável de ambiente para cada comando que exigisse.
Espero que isso ajude alguém.
fonte
Você
$GOROOT
não deve estar configurado. Você$GOPATH
deve estar definido$HOME/go
digitandoexport $GOPATH=$HOME/go
Digite
export GOROOT=""
para corrigir seu problema.fonte
Apenas faça
export GOPATH="/whatever/you/like/your/GOPATH/to/be"
.fonte
Se você se deparar com esse problema após a
$GOPATH
configuração, pode ser porque o está executando com um shell não suportado. Eu estava usandofish
e não funcionou, iniciá-lo combash
funcionou bem.fonte
Você pode usar a solução "export" exatamente como o que outros caras sugeriram. Gostaria de fornecer outra solução para conveniência permanente: você pode usar qualquer caminho como GOPATH ao executar os comandos Go.
Primeiramente, você precisa baixar uma pequena ferramenta chamada
gost
: https://github.com/byte16/gost/releases . Se você usa o ubuntu, pode baixar a versão linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Então você precisa executar os comandos abaixo para descompactá-lo:
Você obteria um executável
gost
. Você pode movê-lo/usr/local/bin
para um uso conveniente:Execute o comando abaixo para adicionar o caminho que você deseja usar como GOPATH no espaço de caminho
gost
mantém. É necessário dar ao caminho um nome que você usaria posteriormente.Execute qualquer comando Go desejado no formato:
Por exemplo, você deseja executar
go get github.com/go-sql-driver/mysql
com/home/foobar/bar
como o GOPATH, apenas fazê-lo como abaixo:Ajudaria você a definir o GOPATH e executar o comando. Mas lembre-se de que você adicionou o caminho no espaço
gost
de caminhos do . Se você estiver em qualquer nível de subdiretórios de/home/foobar/bar
, você pode simplesmente executar o comando abaixo, que faria o mesmo em breve:gost
é uma ferramenta simples de Go, que pode ajudá-lo a gerenciar GOPATHs e executar comandos Go. Para mais detalhes sobre como usá-lo para executar outros comandos Go, você pode simplesmente executargost help goCmdName
. Por exemplo, você deseja saber maisinstall
, basta digitar as palavras abaixo em:Você também pode encontrar mais detalhes no README do projeto: https://github.com/byte16/gost/blob/master/README.md
fonte
Execute 'go env' e veja para onde seu GOPATH está apontando. Se você mudar para esse diretório, seu comando 'go get..etc' deve funcionar.
fonte
Esse problema me ocorreu no raspberry pi. Eu havia efetuado login através do cliente VNC O problema persistiu apesar de configurar e exportar o GOPATH. Em seguida, executou o comando "vá buscar" sem o sudo e funcionou perfeitamente.
fonte
Eu tive que executar um aplicativo como root (para abrir um servidor web na porta 80), isso produziu o erro para mim, porque o usuário sudo tem um ambiente diferente do usuário normal, portanto, GOPATH não foi definido.
Se alguém tiver esse problema, adicione
-E
ao comando, isso preservará o ambiente do usuário.sudo -E go run main.go
Para mais informações, consulte a discussão aqui: Grupos do Google - Problema GOPATH
fonte