أهلا،
لدي مشروع خاص يعتمد على القماش. على وجه التحديد ، قمنا بتثبيت 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
يمكن تأكيد أن الارتداد إلى 1.11.1
قد أصلح هذه المشكلة. أتساءل لماذا 1.10.2
قرر كسر اليوم ...
jamesob هل تم تشغيل هذا من خلال إعادة تثبيت Fabric في بيئة جديدة؟ كما لاحظ gtback ، تغيرت paramiko مؤخرًا وقمنا بإصدار إصدارات Fab مسبقًا من هذا الدبوس إلى paramiko <2 لتجنب هذا النوع من الأشياء. لم تكن من بين هؤلاء وهو على الأرجح سبب تعطل الأشياء.
ومع ذلك ، لم أكن أدرك أننا كنا نستورد Crypto بشكل مباشر في أي مكان ؛ لقد نظرنا للتو ونعم ، كان علينا القيام ببعض التعديلات الغبية للتعامل مع PyCrypto + موازاة quirk. سيتعين تغيير ذلك إذا قمنا بالتراجع عن دبوس إصدار Paramiko (والذي أود القيام به في وقت ما على الأرجح ، بمجرد التأكد من أن paramiko 2 مستقر). لذا ، شكرًا على ظهورك على هذا :)
التعليق الأكثر فائدة
تم إصدار Paramiko 2.0 مؤخرًا (وأعتقد أنه يعتمد على
cryptography
بدلاً منpycrypto
). الإصدار 1.10.2 من setup.py لا يقيد إصدار البارامكو بشكل صحيح ، لكن الإصدار 1.10.3 يفعل ذلك. ربما تساعد الترقية إلى 1.10.3.يبدو أنه تم تغيير هذا في c7d3034b5f217f2b4e7989f2c8e9bbea335be270