الرجاء الإجابة على هذه الأسئلة قبل إرسال مشكلتك. شكرا!
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
نحن نواجه هذه المشكلة أيضًا. تظهر فقط ضمن 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.
التعليق الأكثر فائدة
ChimeraCoder لقد فتحت # 10249.