Voici le message d'erreur:
% go get
can't load package: package .: no buildable Go source files in /Users/7yan00
% echo $GOPATH
/Users/7yan00/Golang
Comment régleriez-vous cette erreur?
Assurez-vous que vous utilisez cette commande dans le dossier source du projet Go (comme /Users/7yan00/Golang/src/myProject
).
Une alternative ( semblable à ce bogue) consiste à utiliser l'option -d
(voir go get
commande )
go get -d
Le drapeau
-d
indique à get de s’arrêter après le téléchargement des packages; c'est-à-dire qu'il demande à ne pas installer les paquets.
Voyez si cela aide dans votre cas.
Mais plus généralement, comme décrit dans ce fil :
go get
est pour le (s) paquet (s), pas pour les référentiels.donc si vous voulez un paquet spécifique, disons,
go.text/encoding
, alors utilisez
go get code.google.com/p/go.text/encoding
si vous voulez que tous les paquets de ce référentiel, utilisez
...
pour indiquer que:
go get code.google.com/p/go.text/...
Vous devriez vérifier le répertoire $ GOPATH. S'il existe un répertoire vide du nom du package, go get
ne télécharge pas le package à partir du référentiel. Par exemple, si je veux obtenir le package "github.com/googollee/go-socket.io" à partir du référentiel github et qu'il existe déjà un répertoire vide github.com/googollee/go-socket.io
dans $ GOPATH, go get
ne télécharge pas le package et se plaint ensuite qu'il n'y a pas fichier source pouvant être construit dans le répertoire. Supprimez tout d'abord un répertoire vide.
Une autre raison possible pour le message:
ne peut pas charger le paquet: ....: aucun fichier source Go à construire
Est-ce quand les fichiers source en cours de compilation ont:
// +build ignore
Dans ce cas, les fichiers sont ignorés et ne peuvent pas être construits comme demandé. Ce comportement est documenté à https://golang.org/pkg/go/build/
Pour résoudre cela pour ma situation:
Je devais spécifier un sous-paquet plus spécifique à installer.
Faux:
go get github.com/garyburd/redigo
Correct:
go get github.com/garyburd/redigo/redis
Si vous souhaitez que tous les packages de ce référentiel soient utilisés, utilisez ...
pour indiquer cela, par exemple:
go get code.google.com/p/go.text/...
J'ai eu ce code d'erreur exact et après vérification de mon référentiel a découvert qu'il n'y avait pas de fichiers Go mais en fait juste plus de répertoires. Donc, c'était plus un hareng rouge qu'une erreur pour moi.
Je recommanderais de faire
aller env
et assurez-vous que tout est comme il se doit, vérifiez les variables d'environnement dans votre système d'exploitation et assurez-vous que votre shell (bash ou w/e) ne le compromet pas via quelque chose comme un fichier .bash_profile ou .bashrc. bonne chance.