无法导入 requests.packages.urllib3.util 'Retry'

Cannot import requests.packages.urllib3.util 'Retry'

我在 Windows 8 上使用 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

谁能告诉我这是为什么? 运行 这行代码是否有我不知道的任何其他依赖项成功?

谢谢

您可能需要更新版本的 Requests。我刚刚用 v2.5.1 试了一下:

from requests.packages.urllib3.util import Retry

似乎有效。仅供参考:最新版本是v2.5.3,值得升级。

此外,如果您单独安装了相当新的 urllib3 版本,这也应该有效:

from urllib3.util import Retry

不幸的是,我们在PoolManagerConnectionPool中检查了Retry的具体isinstance类型,所以这两种类型的Retry对象可能并不完美可互换。 (如果有人想解决这个问题,我会在 PR 上 +1。)

现在,如果您打算将 Retry 对象与 requests 版本的 urllib3 一起使用,您需要直接从那里导入它。

requests 在 request.package

中不再有销售模块

您需要直接引用 urllib3

from urllib3.util import Retry