Go: x / tools / cmd / stringer:ベンダーの依存関係をインポートできません

作成日 2017年08月10日  ·  3コメント  ·  ソース: golang/go

問題を送信する前に、これらの質問に答えてください。 ありがとう!

どのバージョンのGoを使用していますか( go version )?

goバージョンgo1.8.3linux / amd64

どのオペレーティングシステムとプロセッサアーキテクチャを使用していますか( go env )?

Ubuntu Linux、amd64

あなたは何をした?

ベンダーの依存関係をインポートするパッケージでgolang.org/x/tools/cmd/stringerを実行しようとしました

何を見たいと思いましたか?

ツールは期待どおりに機能します

代わりに何を見ましたか?

'go build'および他のすべてのツールは、$ GOPATH / src / vendorでベンダー化された依存関係では問題ないように見えますが、ストリンガーはインポートエラーで失敗します。

$ 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

最も参考になるコメント

@ ChimeraCoder #10249のロックを解除しました。

全てのコメント3件

この問題も発生しています。 https://travis-ci.org/stripe/veneur/builds/278659663で確認できるように、Go1.8でのみ表示されます。 対応するプルリクエストのDockerfileを、Go1.9ではなくGo1.8を使用するように変更することで、ローカルで再現できます。 見つからないパッケージ(この場合はgithub.com/gogo/protobuf/proto )がgo installでインストールされている場合でも発生します。

ストリンガーインポーターは、1.8ではデフォルトのGoインポーターを使用しますが、1.9では使用しません

Stringerを実行する前に、現在のプロジェクト(インポートできないパッケージではなく、インポートがベンダー化されているパッケージ)でgo installを実行すると、問題が修正されます。

stringerでこれを修正しようとしましたが、 go/importer自体の動作が1.8と1.9の間でこのように変化した理由はわかりません。 誰かが私をここで正しい方向に向けることができますか?

この問題はGo1.10で修正されましたが、最近再導入されました。 それを導入したコミットはhttps://github.com/golang/tools/commit/ffe88906718454e356e61776b54256e873fc133bであり、CL40403を元に戻していると確信しています。

https://github.com/golang/go/issues/25650を解決するためにコミットが元に戻されましたが、関連するhttps://github.com/golang/go/issues/10249が再導入されています。

元々は年齢のためにロックされていたため、この問題についてコメントすることはできません。2日前に再開されましたが、それでも共同編集者に限定されています。

@ ChimeraCoder #10249のロックを解除しました。

このページは役に立ちましたか?
0 / 5 - 0 評価