وصف
سأناقش حزمًا محددة ، نظرًا لأنه تم ملاحظة ذلك في البرية (HypothesisWorks / hypothesis # 2113): لقد قمنا مؤخرًا بتحديث اعتمادنا install_requires
على attrs>=16.0
إلى attrs>=19.2
، بتاريخ الأساس الذي يثبت أن تثبيت أحدث إصدار من الفرضية سيؤدي إلى تحديث سمات المستخدمين أيضًا.
pip install hypothesis
يعمل بالفعل.pip install pytest hypothesis
إذا لم يتم تثبيت إصدار أقدم من attrs بالفعل.يبدو أنه عند إدراج عدة حزم في أمر التثبيت ، يتم تقييم توافق التبعيات المثبتة بالفعل فقط للحزمة الأولى المدرجة وللحزم اللاحقة يتم التحقق من وجود التبعيات وليس إصدارها. يؤثر هذا أيضًا على استخدام ملفات المتطلبات.
سلوك متوقع
بغض النظر عن الحزم الأخرى المدرجة للتثبيت أو الموجودة بالفعل ، يجب أن ينتج عن pip install hypothesis
مجموعة متوافقة من الحزم المثبتة أو رسالة خطأ - ليست بيئة معطلة.
كيفية التكاثر
[tox]
skipsdist=True
[testenv]
deps =
pip
attrs==19.1.0
commands =
## Execute the problematic install command
# pip install hypothesis # works
# pip install hypothesis pytest # works
pip install pytest hypothesis # fails, as does `pip install attrs hypothesis` !
# pip install --upgrade pytest hypothesis # works
## Check that the installed packages are compatible
python -c "import hypothesis"
ثم قم بتشغيل tox --recreate
لإعادة إنشاء البيئة الافتراضية وتشغيل الأوامر.
(وبفضل كل من يعمل على pip
، فهو ذو قيمة كبيرة ويحظى بتقدير كبير 😍)
شكرا على التفاصيل والنسخ السهل! مقدر جدا!
هذا أساسًا هو # 988. كملخص سريع:
ERROR
بأحرف كبيرة.
ERROR: hypothesis 4.38.2 has requirement attrs>=19.2.0, but you'll have attrs 19.1.0 which is incompatible.
pip check
كجزء من CI الخاص بك ، للتأكد من أن النقطة لم تفعل شيئًا غبيًا.pip-tools
(يلتف النقطة بمحلل أفضل) أو pipenv
(الذي يستخدم pip-tools
) أو poetry
(الذي يحتوي على محلل خاص به) ، لتجنب ذلك شذوذ محلل النقطة.آه لقد فهمت! لقد راجعت الصفحات القليلة الماضية من المشكلات ، لكن لا شيء بعيدًا ... سعيدًا لإغلاق هذه المشكلة كنسخة مكررة ، لأنني لا أعتقد أنها تحتوي على أي معلومات إضافية؟
إغلاق كنسخة مكررة من # 988.