Dukungan untuk urllib3
v1.25 (dirilis hari ini/kemarin). Yada-yada yang biasa "CI saya rusak".
Beberapa paket yang kami andalkan (misalnya google.cloud.storage
, azure.storage
) memiliki pemeriksaan versi yang ketat pada requests
menggunakan pkg_resources.require('requests >= 2.18.0')
. Setiap dependensi yang tidak terpenuhi dalam rantai di bawah ini dan termasuk requests
akan menyebabkan pemeriksaan gagal dan memunculkan pengecualian. urllib3<1.25
saat ini merupakan salah satu ketergantungan tersebut.
Tidak terkecuali yang dimunculkan pada impor
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
}
Perhatikan bahwa perbaikan permintaan tarik ini harus menutup #5065 dan #4961
Perhatikan juga bahwa solusi untuk contoh reproduksi di atas adalah:
pip3 install sentry-sdk google-cloud-storage 'urllib3<1.25'
Sudah ada PR yang sedang dikerjakan: https://github.com/kennethreitz/requests/pull/5063
Bagi mereka yang menonton, seperti yang disebutkan , kami diblokir di urllib3
v1.25.2
@nateprewitt FYI 1.25.2 akan segera dirilis, saya akan merekomendasikan selain melarang 1.25.0 juga melarang 1.25.1?
Pipa CI kami mulai mendapatkan kesalahan [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
dari 22 April, sejak urllib3
versi 1.25 dirilis. Apakah Anda pikir ini terkait dengan masalah ini?
@rkooo567 , sudahkah Anda mencoba menjalankan CI dengan persyaratan tambahan urllib3<1.25
?
@EpicWink Ya. Dan sepertinya itu menyelesaikan masalah. Saya juga menemukan urllib3==1.25.2
juga menyelesaikan masalah.
urllib3 1.24.3 telah dirilis yang hanya memperbaiki masalah injeksi CRLF untuk pengguna 1.24.X.
Inilah pertanyaan yang mungkin bodoh: mengapa permintaan membatasi urllib3 menjadi <1,25? Karena banyak dependensi pip lainnya akan terus meningkatkan versi urllib3 minimum yang diizinkan, sepertinya ini akan menjamin dua hal:
Apakah urllib3 membuat perubahan yang sering membuat kami khawatir hanya dengan mempercayai versi mereka? Atau ada kekhawatiran lain?
Berdasarkan jumlah referensi untuk masalah ini di pelacak proyek lain, saya yakin ada banyak pengelola proyek lain yang akan menghargai resolusi ini lebih cepat daripada nanti… :) (Menunjukkannya karena referensi masalah tidak ' t memicu pemberitahuan email.)
+1 karena memperburuk masalah yang disebabkan oleh kurangnya pemecah ketergantungan Pip dalam beberapa kasus: https://github.com/pradyunsg/zazo/issues/14
Jika menurut Anda itu menyenangkan, lihat semua hal yang menggunakan permintaan dan tidak dapat memperbarui urllib3. (kami melakukan beberapa pemeriksaan manual)
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
Diselesaikan dengan #5092, rilis sudah ada di pypi sekarang. Terima kasih sekali lagi @EpicWink
Komentar yang paling membantu
Inilah pertanyaan yang mungkin bodoh: mengapa permintaan membatasi urllib3 menjadi <1,25? Karena banyak dependensi pip lainnya akan terus meningkatkan versi urllib3 minimum yang diizinkan, sepertinya ini akan menjamin dua hal:
Apakah urllib3 membuat perubahan yang sering membuat kami khawatir hanya dengan mempercayai versi mereka? Atau ada kekhawatiran lain?