دعم urllib3
v1.25 (تم إصداره اليوم / أمس). يادا-يادا المعتادة "بلدي CI مكسورة".
الحزم المتعددة التي نعتمد عليها (على سبيل المثال ، google.cloud.storage
، azure.storage
) لديها فحص صارم للإصدار على requests
باستخدام pkg_resources.require('requests >= 2.18.0')
. أي تبعيات لم تتم تلبيتها في السلسلة أدناه بما في ذلك requests
ستؤدي إلى فشل الشيك وستحدث استثناءً. urllib3<1.25
هو حاليًا أحد هذه التبعية.
أثيرت أي استثناءات على الاستيراد
pkg_resources.ContextualVersionConflict: (urllib3 1.25 (/usr/local/lib/python3.6/dist-packages), Requirement.parse('urllib3<1.25,>=1.21.1'), {'requests'})
The above exception was the direct cause of the following exception:
ImportError: ``requests >= 2.18.0`` is required by the ``google.resumable_media.requests`` subpackage.
It can be installed via
pip install google-resumable-media[requests].
pip3 install sentry-sdk google-cloud-storage
>>> from google.cloud import storage
md5-cbc1943a1d569f335059802806d81765
/home/laurie/env-tmp/lib/python3.6/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25) or chardet (3.0.4) doesn't match a supported version!
RequestsDependencyWarning)
{
"chardet": {
"version": "3.0.4"
},
"cryptography": {
"version": ""
},
"idna": {
"version": "2.8"
},
"implementation": {
"name": "CPython",
"version": "3.6.7"
},
"platform": {
"release": "4.18.0-17-generic",
"system": "Linux"
},
"pyOpenSSL": {
"openssl_version": "",
"version": null
},
"requests": {
"version": "2.21.0"
},
"system_ssl": {
"version": "1010100f"
},
"urllib3": {
"version": "1.25"
},
"using_pyopenssl": false
}
لاحظ أن طلب السحب لإصلاح هذا يجب أن يغلق # 5065 و # 4961
لاحظ أيضًا أن أحد الحلول لمثال الاستنساخ أعلاه هو:
pip3 install sentry-sdk google-cloud-storage 'urllib3<1.25'
هناك بالفعل علاقات عامة في الأعمال: https://github.com/kennethreitz/requests/pull/5063
سيتم إصدار nateprewitt FYI 1.25.2 قريبًا جدًا ، أوصي بالإضافة إلى عدم السماح 1.25.0 أيضًا بعدم السماح بـ 1.25.1؟
يبدأ خط أنابيب CI الخاص بنا في الحصول على خطأ [integration_py3_docker_metric] 19-04-29:10:26:57 ERROR [clipper_metric_docker.py:127] Failed to parse: http://localhost:44328/api/v1/series?match[]=clipper_mc_parse_time_ms_sum
من 22 أبريل ، من وقت إصدار urllib3
الإصدار 1.25. هل تعتقد أن هذا متعلق بهذه القضية؟
@ rkooo567 ، هل حاولت تشغيل CI بالمتطلبات الإضافية urllib3<1.25
؟
EpicWink نعم. ويبدو أنه يحل مشكلة. لقد اكتشفت أيضًا أن urllib3==1.25.2
يحل المشكلة أيضًا.
تم إصدار urllib3 1.24.3 والذي يعمل على إصلاح مشكلة حقن CRLF فقط لمستخدمي 1.24.X.
إليك سؤال ربما يكون غبيًا: لماذا تقيد الطلبات أن يكون urllib3 <1.25؟ نظرًا لأن العديد من التبعيات الأخرى للنقطة ستستمر في زيادة الحد الأدنى لإصدار urllib3 المسموح به ، يبدو أن هذا سيضمن شيئين:
هل يقوم urllib3 بإجراء تغييرات فاصلة غالبًا ما نشعر بالقلق من مجرد الثقة في إصداره؟ أم أن هناك قلق آخر؟
استنادًا إلى عدد الإشارات إلى هذه المشكلة في متتبعات المشاريع الأخرى ، أنا متأكد من أن هناك الكثير من المشرفين على المشروع الآخرين الذين سيقدرون حلاً لذلك عاجلاً وليس آجلاً ... :) (الإشارة إلى ذلك نظرًا لأن مراجع المشكلة لا t تشغيل إشعارات البريد الإلكتروني.)
+1 لأنه يؤدي إلى تفاقم المشكلات الناجمة عن افتقار Pip لمحلل التبعية في بعض الحالات: https://github.com/pradyunsg/zazo/issues/14
إذا كنت تعتقد أن هذا ممتع ، فراجع كل الأشياء التي تستخدم الطلبات ولا يمكنها تحديث urllib3. (نقوم ببعض الفحص اليدوي)
http://logs.openstack.org/36/658636/3/check/requirements-tox-py27-check-uc/48d2334/job-output.txt.gz#_2019 -05-14_06_33_55_887702
تم الحل بالرقم # 5092 ، أصبح الإصدار متاحًا على pypi الآن. شكرا مرة أخرىEpicWink
التعليق الأكثر فائدة
إليك سؤال ربما يكون غبيًا: لماذا تقيد الطلبات أن يكون urllib3 <1.25؟ نظرًا لأن العديد من التبعيات الأخرى للنقطة ستستمر في زيادة الحد الأدنى لإصدار urllib3 المسموح به ، يبدو أن هذا سيضمن شيئين:
هل يقوم urllib3 بإجراء تغييرات فاصلة غالبًا ما نشعر بالقلق من مجرد الثقة في إصداره؟ أم أن هناك قلق آخر؟