Fabric: خطأ في الاستيراد: لا توجد وحدة نمطية باسم Crypto

تم إنشاؤها على ٢٩ أبريل ٢٠١٦  ·  3تعليقات  ·  مصدر: fabric/fabric

أهلا،

لدي مشروع خاص يعتمد على القماش. على وجه التحديد ، قمنا بتثبيت fabric==1.10.2 .

اليوم ، بدأت عمليات إنشاء هذا المشروع تفشل بشكل غامض مع تتبع المكدس التالي:

19:22:54.233     from fabric import api as fabric_api
19:22:54.233   File "/home/go/work/pipelines/make-ci-00/code/.venv/local/lib/python2.7/site-packages/fabric/api.py", line 11, in <module>
19:22:54.233     from fabric.decorators import (hosts, roles, runs_once, with_settings, task,
19:22:54.233   File "/home/go/work/pipelines/make-ci-00/code/.venv/local/lib/python2.7/site-packages/fabric/decorators.py", line 9, in <module>
19:22:54.233     from Crypto import Random
19:22:54.233 ImportError: No module named Crypto

تم تثبيت القماش على نفس الإصدار لأسابيع. يؤدي تثبيت pycrypto يدويًا إلى جانب القماش إلى حل هذه المشكلة.

على الرغم من استيراد Crypto.Random بشكل صريح ، فإن تبعية النسيج الوحيدة هي paramiko ، ولا تتم الإشارة إلى pycrypto في

IMO إذا كنت تقوم باستيراد رموز pycrypto صراحةً داخل النسيج ، فيجب الإشارة إلى pycrypto على أنها تبعية ضمن setup.py .

شكرا!

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

تم إصدار Paramiko 2.0 مؤخرًا (وأعتقد أنه يعتمد على cryptography بدلاً من pycrypto ). الإصدار 1.10.2 من setup.py لا يقيد إصدار البارامكو بشكل صحيح ، لكن الإصدار 1.10.3 يفعل ذلك. ربما تساعد الترقية إلى 1.10.3.

يبدو أنه تم تغيير هذا في c7d3034b5f217f2b4e7989f2c8e9bbea335be270

ال 3 كومينتر

تم إصدار Paramiko 2.0 مؤخرًا (وأعتقد أنه يعتمد على cryptography بدلاً من pycrypto ). الإصدار 1.10.2 من setup.py لا يقيد إصدار البارامكو بشكل صحيح ، لكن الإصدار 1.10.3 يفعل ذلك. ربما تساعد الترقية إلى 1.10.3.

يبدو أنه تم تغيير هذا في c7d3034b5f217f2b4e7989f2c8e9bbea335be270

يمكن تأكيد أن الارتداد إلى 1.11.1 قد أصلح هذه المشكلة. أتساءل لماذا 1.10.2 قرر كسر اليوم ...

jamesob هل تم تشغيل هذا من خلال إعادة تثبيت Fabric في بيئة جديدة؟ كما لاحظ gtback ، تغيرت paramiko مؤخرًا وقمنا بإصدار إصدارات Fab مسبقًا من هذا الدبوس إلى paramiko <2 لتجنب هذا النوع من الأشياء. لم تكن من بين هؤلاء وهو على الأرجح سبب تعطل الأشياء.

ومع ذلك ، لم أكن أدرك أننا كنا نستورد Crypto بشكل مباشر في أي مكان ؛ لقد نظرنا للتو ونعم ، كان علينا القيام ببعض التعديلات الغبية للتعامل مع PyCrypto + موازاة quirk. سيتعين تغيير ذلك إذا قمنا بالتراجع عن دبوس إصدار Paramiko (والذي أود القيام به في وقت ما على الأرجح ، بمجرد التأكد من أن paramiko 2 مستقر). لذا ، شكرًا على ظهورك على هذا :)

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