Requests: دعم urllib3 v1.25

تم إنشاؤها على ٢٣ أبريل ٢٠١٩  ·  15تعليقات  ·  مصدر: psf/requests

دعم 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
}

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

إليك سؤال ربما يكون غبيًا: لماذا تقيد الطلبات أن يكون urllib3 <1.25؟ نظرًا لأن العديد من التبعيات الأخرى للنقطة ستستمر في زيادة الحد الأدنى لإصدار urllib3 المسموح به ، يبدو أن هذا سيضمن شيئين:

  1. كل عثرة في الإصدار الثانوي في urllib3 ستؤدي إلى كسر العديد من المشاريع التي تعتمد على الطلبات (على سبيل المثال ، أي شخص يستخدم حزم Google أو Microsoft Azure الرئيسية ، من بين أشياء أخرى كثيرة).
  2. سيتطلب كل عثرة في الإصدار الثانوي في urllib3 إصدارًا جديدًا من الطلبات للسماح بالإصدار الجديد من urllib3.

هل يقوم urllib3 بإجراء تغييرات فاصلة غالبًا ما نشعر بالقلق من مجرد الثقة في إصداره؟ أم أن هناك قلق آخر؟

ال 15 كومينتر

لاحظ أن طلب السحب لإصلاح هذا يجب أن يغلق # 5065 و # 4961

لاحظ أيضًا أن أحد الحلول لمثال الاستنساخ أعلاه هو:

pip3 install sentry-sdk google-cloud-storage 'urllib3<1.25'

هناك بالفعل علاقات عامة في الأعمال: https://github.com/kennethreitz/requests/pull/5063

لأولئك الذين يشاهدون ، كما ذكرنا ، تم حظرنا على urllib3 v1.25.2

سيتم إصدار 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 المسموح به ، يبدو أن هذا سيضمن شيئين:

  1. كل عثرة في الإصدار الثانوي في urllib3 ستؤدي إلى كسر العديد من المشاريع التي تعتمد على الطلبات (على سبيل المثال ، أي شخص يستخدم حزم Google أو Microsoft Azure الرئيسية ، من بين أشياء أخرى كثيرة).
  2. سيتطلب كل عثرة في الإصدار الثانوي في urllib3 إصدارًا جديدًا من الطلبات للسماح بالإصدار الجديد من 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

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