Veuillez répondre à ces questions avant de soumettre votre problème. Merci!
go version
) ?aller version go1.8.3 linux/amd64
go env
) ?Ubuntu Linux, amd64
Tentative d'exécution de golang.org/x/tools/cmd/stringer sur le package d'importation des dépendances du fournisseur
L'outil fonctionne comme prévu
Alors que 'go build' et tous les autres outils semblent bien avec les dépendances fournies dans $GOPATH/src/vendor, stringer échoue avec des erreurs d'importation :
$ go build plinth/auth
$ go get golang.org/x/tools/cmd/stringer
$ go generate plinth/auth
stringer: checking package: auth.go:8:2: could not import golang.org/x/net/context (can't find import: vendor/golang.org/x/net/context)
src/plinth/auth/auth.go:37: running "stringer": exit status 1
$ stringer -type Role $GOPATH/src/plinth/auth
stringer: checking package: [...]/src/plinth/auth/auth.go:8:2: could not import golang.org/x/net/context (can't find import: vendor/golang.org/x/net/context)
$ ls $GOPATH/src/vendor/golang.org/x/net/context
context.go context_test.go ctxhttp go17.go go19.go pre_go17.go pre_go19.go withtimeout_test.go
Nous rencontrons également ce problème. Il ne se manifeste que sous Go 1.8, comme on peut le voir ici : https://travis-ci.org/stripe/veneur/builds/278659663. Il est reproductible localement en modifiant le Dockerfile dans la demande d'extraction correspondante pour utiliser Go 1.8 au lieu de Go 1.9. Cela se produit même si le paquet qu'il ne trouve pas (dans ce cas, github.com/gogo/protobuf/proto
) est installé avec go install
.
L'importateur stringer utilise l'importateur Go par défaut pour 1.8, mais pas pour 1.9 .
Exécuter go install
dans le projet en cours (pas sur le package qu'il ne peut pas importer, mais sur celui dans lequel l'importation est vendue) avant d'exécuter Stringer résout le problème.
J'ai essayé de tenter de résoudre ce problème dans stringer
, même si je ne sais pas pourquoi le comportement de go/importer
lui-même a changé entre 1,8 et 1,9 de cette façon. Quelqu'un pourrait-il me diriger dans la bonne direction ici?
Ce problème a été corrigé dans Go 1.10, mais il a été réintroduit récemment. Je suis presque sûr que le commit qui l'a introduit était https://github.com/golang/tools/commit/ffe88906718454e356e61776b54256e873fc133b , qui annule CL 40403.
Le commit a été annulé afin de résoudre https://github.com/golang/go/issues/25650 , bien qu'il réintroduit https://github.com/golang/go/issues/10249 , qui est lié.
Je ne peux pas commenter ce problème car il était initialement verrouillé en raison de son âge - il a été rouvert il y a deux jours, mais il est toujours limité aux collaborateurs.
@ChimeraCoder J'ai débloqué #10249.
Commentaire le plus utile
@ChimeraCoder J'ai débloqué #10249.