Go: x/tools/cmd/stringer : impossible d'importer les dépendances fournies

Créé le 10 août 2017  ·  3Commentaires  ·  Source: golang/go

Veuillez répondre à ces questions avant de soumettre votre problème. Merci!

Quelle version de Go utilisez-vous ( go version ) ?

aller version go1.8.3 linux/amd64

Quel système d'exploitation et quelle architecture de processeur utilisez-vous ( go env ) ?

Ubuntu Linux, amd64

Qu'est-ce que tu as fait?

Tentative d'exécution de golang.org/x/tools/cmd/stringer sur le package d'importation des dépendances du fournisseur

Qu'est-ce que vous vous attendiez à voir ?

L'outil fonctionne comme prévu

Qu'as-tu vu à la place ?

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
Tools

Commentaire le plus utile

@ChimeraCoder J'ai débloqué #10249.

Tous les 3 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes