Je veux installer json2csv en utilisant go get github.com/jehiah/json2csv
mais je reçois cette erreur:
package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path
Une aide sur la façon de résoudre ce problème sur MacOS?
macos
installation
go
Mona Jalal
la source
la source
Réponses:
[Mise à jour: à partir de Go 1.8, la valeur par
GOPATH
défaut est$HOME/go
, mais vous pouvez toujours trouver cela utile si vous voulez comprendre laGOPATH
mise en page, la personnaliser, etc.]Le site officiel de Go traite de GOPATH et de la mise en page d'un répertoire d'espace de travail .
export GOPATH="$HOME/your-workspace-dir/"
- exécutez-le dans votre shell, puis ajoutez-le~/.bashrc
ou un équivalent afin qu'il soit défini pour vous dans le futur. Go installera les paquets soussrc/
,bin/
etpkg/
, là - bas sous - répertoires. Vous voudrez mettre vos propres packages quelque part sous$GOPATH/src
, comme$GOPATH/src/github.com/myusername/
si vous souhaitez publier sur GitHub. Vous voudrez probablement aussiexport PATH=$PATH:$GOPATH/bin
dans votre.bashrc
afin que vous puissiez exécuter des programmes compilés sous$GOPATH
.En option, via Rob Pike , vous pouvez également définir
CDPATH
pour qu'il soit plus rapidecd
de regrouper les répertoires dans bash: celaexport CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x
signifie que vous pouvez simplement tapercd net/html
au lieu decd $GOPATH/src/golang.org/x/net/html
.Keith Rarick note que vous pouvez définir
GOPATH=$HOME
pour mettre Gosrc/
,pkg/
etbin/
répertoires sous votre répertoire personnel . Cela peut être bien (par exemple, vous pouvez déjà en avoir$HOME/bin
dans votre chemin), mais bien sûr, certaines personnes utilisent plusieurs espaces de travail, etc.la source
src/
contient par exemplegithub.com/youruser/x
etgithub.com/youruser/y
. C'est ce que je fais. Les gens peuvent avoir leurs raisons de faire autrement (politique de l'entreprise de séparer les projets?), Mais je ne peux pas en parler.echo $GOPATH
dit-on? Cela pourrait valoir la peine d'être publié sous forme de question distincte; on dirait que vous êtes dans une situation inhabituelle, et les déboguer dans les commentaires peut être délicat.export
; exécuter/bin/bash -c "echo \$GOPATH"
pour vérifier que les sous-processus peuvent voir$GOPATH
; s'il fait écho à vide, alors exécutezexport GOPATH
et puisgo get ...
Celui-ci a fonctionné
Configurer l'environnement de développement Go sur Ubuntu et comment réparer $ GOPATH / $ GOROOT
Pas
Définissez $ GOPATH dans .bashrc,
la source
Utilisation d'infusion
Je l'ai installé en utilisant
brew
.Quand cela a été fait, si vous exécutez cette commande de brassage, les informations suivantes s'affichent:
Les pièces importantes sont ces lignes:
Configuration de l'environnement de GO
Cela montre où GO a été installé. Nous devons procéder comme suit pour configurer l'environnement de GO:
Vous pouvez ensuite vérifier à l'aide de GO pour voir s'il est correctement configuré:
Configuration de json2csv
Ça a l'air bien, alors installons
json2csv
:Qu'est-ce qui vient juste de se passer? Il l'a installé. Vous pouvez vérifier comme ceci:
OK, alors pourquoi ne puis-je pas taper
json2csv
dans mon shell? C'est parce que le/bin
répertoire ci-dessous$GOPATH
n'est pas sur votre$PATH
.Alors ajoutons-le temporairement:
Et revérifiez:
Maintenant c'est là:
Ajoutez les modifications que nous avons apportées à
$PATH
et$GOPATH
à votre$HOME/.bash_profile
pour les faire persister entre les redémarrages.la source
Regarder une vidéo
En général, je recommande toujours cette vidéo officielle de Go pour avoir un aperçu rapide du sujet:
http://www.youtube.com/watch?v=XCsL89YtqCs
C'est plus facile d'être montré que d'être dit.
@jwfearn a paraphrasé la partie importante de la vidéo:
la source
J'ai trouvé plus facile de le faire comme ceci:
la source
Pour MAC, cela a bien fonctionné pour moi.
et ajoutez le ci-dessous à la fin du fichier
Cela devrait résoudre le problème. Essayez d'ouvrir un nouveau terminal et faites écho à $ GOPATH, vous devriez voir la valeur correcte.
la source
(pour Mac)
J'ai essayé toutes ces réponses et, pour une raison encore inconnue, aucune d'elles n'a fonctionné.
J'ai dû "forcer" le GOPATH en définissant la variable d'environnement pour chaque commande qui l'exigeait. Par exemple:
M'a même
glide
donné l'GOPATH not set
erreur. Je l'ai résolu, encore une fois, par le "gavage": j'ai essayé toutes ces réponses et, pour une raison encore inconnue, aucune d'elles n'a fonctionné.J'ai dû "forcer" le GOPATH en définissant la variable d'environnement pour chaque commande qui l'exigeait.
J'espère que cela aide quelqu'un.
la source
Votre
$GOROOT
ne doit pas être configuré. Vous$GOPATH
devriez être défini sur$HOME/go
en tapantexport $GOPATH=$HOME/go
Veuillez taper
export GOROOT=""
pour résoudre votre problème.la source
Fais juste
export GOPATH="/whatever/you/like/your/GOPATH/to/be"
.la source
Si vous rencontrez ce problème après avoir
$GOPATH
configuré, c'est peut-être parce que vous l'exécutez avec un shell non pris en charge. J'utilisaisfish
et cela ne fonctionnait pas, le lancer avecbash
fonctionnait bien.la source
Vous pouvez utiliser la solution «export» comme ce que d'autres gars ont suggéré. J'aimerais vous fournir une autre solution pour une commodité permanente: vous pouvez utiliser n'importe quel chemin comme GOPATH lors de l'exécution des commandes Go.
Tout d'abord, vous devez télécharger un petit outil nommé
gost
: https://github.com/byte16/gost/releases . Si vous utilisez ubuntu, vous pouvez télécharger la version linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Ensuite, vous devez exécuter les commandes ci-dessous pour le décompresser:
Vous obtiendrez un exécutable
gost
. Vous pouvez le déplacer vers/usr/local/bin
pour une utilisation pratique:Exécutez la commande ci-dessous pour ajouter le chemin que vous souhaitez utiliser comme GOPATH dans l' espace de chemin
gost
maintenu. Il est nécessaire de donner au chemin un nom que vous utiliserez plus tard.Exécutez n'importe quelle commande Go de votre choix au format:
Par exemple, vous voulez exécuter
go get github.com/go-sql-driver/mysql
avec/home/foobar/bar
le GOPATH, faites-le simplement comme ci-dessous:Cela vous aiderait à définir le GOPATH et à exécuter la commande. Mais rappelez-vous que vous avez ajouté le chemin dans
gost
l' espace de chemin de . Si vous êtes sous n'importe quel niveau de sous-répertoires de/home/foobar/bar
, vous pouvez même simplement exécuter la commande ci-dessous qui ferait la même chose pour faire court:gost
est un outil simple de Go qui peut vous aider à gérer les GOPATH et à exécuter les commandes Go. Pour plus de détails sur la façon de l'utiliser pour exécuter d'autres commandes Go, vous pouvez simplement l'exécutergost help goCmdName
. Par exemple, vous voulez en savoir plusinstall
, tapez simplement les mots ci-dessous dans:Vous pouvez également trouver plus de détails dans le README du projet: https://github.com/byte16/gost/blob/master/README.md
la source
Exécutez «go env» et voyez où votre GOPATH pointe actuellement. Si vous passez dans ce répertoire, votre commande «go get..etc» devrait fonctionner.
la source
Ce problème m'est arrivé dans Raspberry Pi. Je m'étais connecté via le client VNC Le problème persistait malgré la configuration et l'exportation du GOPATH. Ensuite, exécutez la commande "go get" sans sudo et cela a parfaitement fonctionné.
la source
J'ai dû exécuter une application en tant que root (pour ouvrir un serveur Web sur le port 80), cela a produit l'erreur pour moi, car l'utilisateur sudo a un environnement différent de l'utilisateur normal, par conséquent GOPATH n'a pas été défini.
Si quelqu'un d'autre rencontre ce problème, ajoutez
-E
à la commande, cela préservera l'environnement utilisateur.sudo -E go run main.go
Pour plus d'informations, voir la discussion ici: Google Groupes - Problème GOPATH
la source