Harap jawab pertanyaan ini sebelum mengirimkan masalah Anda. Terima kasih!
go version
)?go versi go1.8.3 linux/amd64
go env
)?Ubuntu Linux, amd64
Mencoba menjalankan golang.org/x/tools/cmd/stringer pada paket yang mengimpor dependensi vendor
Alat bekerja seperti yang diharapkan
Sementara 'go build' dan semua alat lain tampak baik-baik saja dengan ketergantungan yang dijajakan di $GOPATH/src/vendor, stringer gagal dengan kesalahan impor:
$ 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
Kami juga mengalami masalah ini. Itu hanya bermanifestasi di bawah Go 1.8, seperti yang dapat dilihat di sini: https://travis-ci.org/stripe/veneur/builds/278659663. Ini dapat direproduksi secara lokal dengan mengubah Dockerfile dalam permintaan tarik yang sesuai untuk menggunakan Go 1.8 alih-alih Go 1.9. Itu terjadi bahkan jika paket yang tidak dapat ditemukan (dalam hal ini, github.com/gogo/protobuf/proto
) diinstal dengan go install
.
Pengimpor stringer menggunakan pengimpor Go default untuk 1.8, tetapi tidak untuk 1.9 .
Menjalankan go install
dalam proyek saat ini (bukan pada paket yang tidak dapat diimpor, tetapi pada paket yang mengimpor vendor) sebelum menjalankan Stringer memperbaiki masalah.
Saya mencoba mencoba memperbaikinya di stringer
, meskipun saya tidak yakin mengapa perilaku go/importer
itu sendiri berubah antara 1,8 dan 1,9 dengan cara ini. Bisakah seseorang mengarahkan saya ke arah yang benar di sini?
Masalah ini telah diperbaiki di Go 1.10, tetapi diperkenalkan kembali baru-baru ini. Saya cukup yakin komit yang memperkenalkannya adalah https://github.com/golang/tools/commit/ffe88906718454e356e61776b54256e873fc133b , yang mengembalikan CL 40403.
Komit dikembalikan untuk menyelesaikan https://github.com/golang/go/issues/25650 , meskipun itu memperkenalkan kembali https://github.com/golang/go/issues/10249 , yang terkait.
Saya tidak dapat mengomentari masalah itu karena awalnya dikunci karena usia - dibuka kembali dua hari yang lalu, tetapi masih terbatas pada kolaborator.
@ChimeraCoder Saya membuka kunci #10249.
Komentar yang paling membantu
@ChimeraCoder Saya membuka kunci #10249.