web-dev-qa-db-fra.com

ne peut pas charger package: package.: aucun fichier source Go à construire

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?

66
7yan00

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/...
41
VonC

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.

27
BurtK

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/

10
Joao Costa

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
6
Donn Lee

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/...
1
user3072851

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.

0
David Hunsicker