Requests: urllib3v1.25のサポート

作成日 2019年04月23日  ·  15コメント  ·  ソース: psf/requests

urllib3 v1.25のサポート(本日/昨日リリース)。 いつものやだやだ「私のCIが壊れている」。

私たちが依存している複数のパッケージ(例: google.cloud.storageazure.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
}

最も参考になるコメント

これはおそらくばかげた質問です:なぜリクエストはurllib3を<1.25に制限するのですか? 他の多くのpip依存関係は、許可されるurllib3の最小バージョンを増やし続けるため、これにより2つのことが保証されるようです。

  1. urllib3のマイナーバージョンのバンプはすべて、リクエストに依存する多くのプロジェクトを壊します(たとえば、メジャーなGoogleまたはMicrosoft Azureパッケージを使用している人など)。
  2. urllib3のマイナーバージョンのバンプはすべて、新しいバージョンのurllib3を許可するために、リクエストの新しいリリースが必要になります。

urllib3は、バージョン管理を信頼するだけで心配になるような重大な変更を加えますか? それとも別の懸念がありますか?

全てのコメント15件

これを修正するプルリクエストは#5065と#4961を閉じる必要があることに注意してください

また、上記の再現例の解決策は次のとおりです。

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

作業中のPRはすでにあります: https ://github.com/kennethreitz/requests/pull/5063

見ていた人には、前述のように、 urllib3 v1.25.2でブロックされています

@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つのことが保証されるようです。

  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 評価