Responda estas preguntas antes de enviar su problema. ¡Gracias!
go version
)?ir a la versión go1.8.3 linux/amd64
go env
)?UbuntuLinux, amd64
Se intentó ejecutar golang.org/x/tools/cmd/stringer en las dependencias de proveedores de importación de paquetes
La herramienta funciona como se esperaba.
Si bien 'ir a compilar' y todas las demás herramientas parecen estar bien con las dependencias que se venden en $GOPATH/src/vendor, Stringer falla con errores de importación:
$ 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
También nos encontramos con este problema. Solo se manifiesta en Go 1.8, como se puede ver aquí: https://travis-ci.org/stripe/veneur/builds/278659663. Es reproducible localmente cambiando el Dockerfile en la solicitud de extracción correspondiente para usar Go 1.8 en lugar de Go 1.9. Ocurre incluso si el paquete que no puede encontrar (en este caso, github.com/gogo/protobuf/proto
) está instalado con go install
.
El importador de stringer usa el importador Go predeterminado para 1.8, pero no para 1.9 .
Ejecutar go install
en el proyecto actual (no en el paquete que no puede importar, sino en el que se vende la importación) antes de ejecutar Stringer soluciona el problema.
Traté de intentar arreglar esto en stringer
, aunque no estoy seguro de por qué el comportamiento de go/importer
cambió entre 1.8 y 1.9 de esta manera. ¿Podría alguien señalarme en la dirección correcta aquí?
Este problema se solucionó en Go 1.10, pero se reintrodujo recientemente. Estoy bastante seguro de que la confirmación que lo introdujo fue https://github.com/golang/tools/commit/ffe88906718454e356e61776b54256e873fc133b , que revierte CL 40403.
La confirmación se revirtió para resolver https://github.com/golang/go/issues/25650 , aunque vuelve a introducir https://github.com/golang/go/issues/10249 , que está relacionado.
No puedo comentar sobre ese problema porque originalmente estaba bloqueado debido a la antigüedad; se reabrió hace dos días, pero aún está limitado a los colaboradores.
@ChimeraCoder Desbloqueé el #10249.
Comentario más útil
@ChimeraCoder Desbloqueé el #10249.