Rq: UnpickleError: (u'Could not unpickle '، ImportError (' لا يمكن استيراد اسم SmsRecord '،))

تم إنشاؤها على ١٣ نوفمبر ٢٠١٥  ·  5تعليقات  ·  مصدر: rq/rq

لقد كنت أعاني من مشكلة استيراد لا يمكنني حلها على ما يبدو.

لدي تطبيق django (لا يستخدم django-rq بسبب بعض المشكلات التي لا أتذكرها) وكنت أستخدم rq بشكل جيد منذ فترة حتى الآن. أضفت وحدة أخرى إلى تطبيق django الخاص بي ، وبدأت في الحصول على خطأ في الاستيراد. لقد أكدت عدم وجود مشكلات استيراد دائرية. أظن أن هناك مشكلة في مساحة الاسم ولذا أريد أن أشرح قليلاً. أشعر أيضًا أن رسائل الخطأ لا تشير إلى المشكلات الحقيقية.

لدي وحدة تسمى quicken تحتوي على from sprint.models import SmsRecord . لم تكن هناك مشاكل. لقد قمت فيما بعد بإنشاء وحدة تسمى waze والتي أيضًا from sprint.models import SmsRecord ، لكنني الآن أحصل على UnpickleError: (u'Could not unpickle', ImportError('cannot import name SmsRecord',)) . هنا هو التتبع الكامل .

لمعرفة ما يحدث ، قمت بتضمين import waze في worker.py لمعرفة سبب الخطأ ، وأرى رسالة خطأ أفضل قليلاً

الإصدار المستخدم: rq == 0.5.6 ، redis == 2.10.5 و django == 1.8.4 كلها في بيئة OSX.

التعليق الأكثر فائدة

واجهت نفس المشكلة وتمكنت من حلها من خلال التأكد من أنني كنت أشغل rq worker في الدليل حيث يمكن استيراد الوحدة المطلوبة.

ال 5 كومينتر

لا يبدو أن هذا خطأ في RQ ولكن في طريقة إعداد بيئتك. لست على دراية بالطريقة التي يتم بها تنظيم الكود الخاص بك ، لذا لا يمكنني تقديم الكثير من الأفكار.

واجهت نفس المشكلة وتمكنت من حلها من خلال التأكد من أنني كنت أشغل rq worker في الدليل حيث يمكن استيراد الوحدة المطلوبة.

الترقية إلى rq == 0.10.0 أصلحت لي هذا الخطأ

وجود هذه المشكلة الآن على 1.1.0 😬

يبدو أنه تمت إزالة هذا الاستثناء في https://github.com/rq/rq/commit/e1cbc3736c55d7a72be121a170d1b8c811619dc2#diff -27817b1a9be843cacb4ebeb20393c486

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