web-dev-qa-db-ja.com

requests.packages.urllib3.utilをインポートできません '再試行'

Windows8でPython 2.7 64ビットを使用しています。Requestsバージョン2.3をインストールしています。コード内で再試行回数を増やす一環として、このインポートステートメントを実行しようとしています。

from requests.packages.urllib3.util import Retry

Urllib3もインストールしました(Pip経由でインストールしました)。エラーメッセージが表示されます:

Traceback (most recent call last):
  File "C:\Python27\counter.py", line 3, in <module>
    from requests.packages.urllib3.util import Retry
ImportError: cannot import name Retry

なぜこれなのか誰か教えてもらえますか?このコード行を正常に実行するために私が気付いていない他の依存関係はありますか?

ありがとう

13
gdogg371

新しいバージョンのリクエストが必要になる場合があります。 v2.5.1で試してみました。

from requests.packages.urllib3.util import Retry

動作しているようです。参考:最新バージョンはv2.5.3で、アップグレードする価値があります。

また、かなり新しいバージョンのurllib3を個別にインストールしている場合は、これも機能するはずです。

from urllib3.util import Retry

残念ながら、isinstanceRetryPoolManagerの特定のConnectionPoolタイプをチェックするため、2つのタイプのRetryオブジェクトは完全ではない可能性があります交換可能。 (誰かがこれを修正したい場合、私はPRで+1になります。)

今のところ、Retryオブジェクトをurllib3requestsバージョンで使用する場合は、そこから直接インポートする必要があります。

11
shazow

リクエストのrequest.packageにベンダーモジュールが含まれなくなりました

urllib3を直接参照する必要があります

5
Justin Poehnelt