Go: x / tools / cmd / stringer: لا يمكن استيراد التبعيات الموردة

تم إنشاؤها على ١٠ أغسطس ٢٠١٧  ·  3تعليقات  ·  مصدر: golang/go

الرجاء الإجابة على هذه الأسئلة قبل إرسال مشكلتك. شكرا!

ما هو إصدار Go الذي تستخدمه ( go version

انتقل إلى الإصدار go1.8.3 linux / amd64

ما هو نظام التشغيل وبنية المعالج الذي تستخدمه ( go env

نظام التشغيل Ubuntu Linux ، amd64

ما الذي فعلته؟

تمت محاولة تشغيل golang.org/x/tools/cmd/stringer على حزمة استيراد التبعيات الموردة

ماذا كنت تتوقع أن ترى؟

الأداة تعمل كما هو متوقع

ماذا رأيت بدلا من ذلك؟

بينما تبدو 'go build' وجميع الأدوات الأخرى جيدة مع التبعيات الموردة في $ GOPATH / src / vendor ، يفشل stringer مع أخطاء الاستيراد:

$ 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 كومينتر

نحن نواجه هذه المشكلة أيضًا. تظهر فقط ضمن Go 1.8 ، كما يمكن رؤيته هنا: https://travis-ci.org/stripe/veneur/builds/278659663. يمكن استنساخه محليًا عن طريق تغيير Dockerfile في طلب السحب المقابل لاستخدام Go 1.8 بدلاً من Go 1.9. يحدث ذلك حتى إذا تم تثبيت الحزمة التي لا يمكن العثور عليها (في هذه الحالة ، github.com/gogo/protobuf/proto ) مع go install .

يستخدم مستورد stringer المستورد الافتراضي Go لـ 1.8 ، ولكن ليس لـ 1.9 .

تشغيل go install في المشروع الحالي (ليس على الحزمة التي لا يمكن استيرادها ، ولكن في المشروع الذي يتم فيه استيراد الاستيراد) قبل تشغيل Stringer يعمل على إصلاح المشكلة.

حاولت إصلاح هذا في stringer ، على الرغم من أنني لست متأكدًا من سبب تغيير سلوك go/importer نفسه بين 1.8 و 1.9 بهذه الطريقة. هل يمكن لأي شخص أن يوجهني في الاتجاه الصحيح هنا؟

تم إصلاح هذه المشكلة في Go 1.10 ، ولكن أعيد تقديمها مؤخرًا. أنا متأكد من أن الالتزام الذي قدمه كان https://github.com/golang/tools/commit/ffe88906718454e356e61776b54256e873fc133b ، والذي يعود إلى CL 40403.

تمت إعادة الالتزام من أجل حل https://github.com/golang/go/issues/25650 ، على الرغم من إعادة تقديمه https://github.com/golang/go/issues/10249 ، ذات الصلة.

لا يمكنني التعليق على هذه المشكلة لأنها كانت مقفلة في الأصل بسبب العمر - أعيد فتحها قبل يومين ، لكنها لا تزال مقصورة على المتعاونين.

ChimeraCoder لقد فتحت # 10249.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات