urllib3
v1.25のサポート(本日/昨日リリース)。 いつものやだやだ「私のCIが壊れている」。
私たちが依存している複数のパッケージ(例: google.cloud.storage
、 azure.storage
)には、厳密なバージョンがあります- pkg_resources.require('requests >= 2.18.0')
$を使用してrequests
をチェックしてください。 以下のチェーン内でrequests
を含む満たされていない依存関係があると、チェックが失敗し、例外が発生します。 urllib3<1.25
は、現在そのような依存関係の1つです。
インポート時に例外は発生しません
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'
作業中のPRはすでにあります: https ://github.com/kennethreitz/requests/pull/5063
@nateprewitt FYI 1.25.2は間もなくリリースされますが、1.25.0を禁止することに加えて、1.25.1も禁止することをお勧めしますか?
私たちのCIパイプラインは、 urllib3
バージョン1.25がリリースされたときから、4月22日からエラー[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
を受け取り始めます。 これはこの問題に関連していると思いますか?
@ rkooo567 、追加要件urllib3<1.25
でCIを実行してみましたか?
@EpicWinkはい。 そして、それは問題を解決するようです。 また、 urllib3==1.25.2
でも問題が解決することがわかりました。
urllib3 1.24.3がリリースされ、1.24.XユーザーのCRLFインジェクションの問題のみが修正されました。
これはおそらくばかげた質問です:なぜリクエストはurllib3を<1.25に制限するのですか? 他の多くのpip依存関係は、許可されるurllib3の最小バージョンを増やし続けるため、これにより2つのことが保証されるようです。
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に制限するのですか? 他の多くのpip依存関係は、許可されるurllib3の最小バージョンを増やし続けるため、これにより2つのことが保証されるようです。
urllib3は、バージョン管理を信頼するだけで心配になるような重大な変更を加えますか? それとも別の懸念がありますか?