无法导入requests.packages.urllib3.util'重试'

gdo*_*371 12 python urllib3 python-requests

我在Windows 8上使用Python 2.7 64位.我安装了Requests 2.3版.我试图运行此import语句作为在我的代码中引入重试次数的一部分:

from requests.packages.urllib3.util import Retry
Run Code Online (Sandbox Code Playgroud)

我也安装了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
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么会这样?有没有其他依赖我不知道成功运行这行代码?

谢谢

Jus*_*elt 12

请求在 request.package 中不再有供应商模块

您将需要直接引用 urllib3


sha*_*zow 10

您可能需要更新版本的请求.我刚用v2.5.1尝试过:

from requests.packages.urllib3.util import Retry
Run Code Online (Sandbox Code Playgroud)

似乎工作.仅供参考:最新版本为v2.5.3,值得升级.

此外,如果你有一个合理的最新版本的urllib3单独安装,这也应该工作:

from urllib3.util import Retry
Run Code Online (Sandbox Code Playgroud)

不幸的是,我们检查的具体isinstance类型RetryPoolManagerConnectionPool,所以这两种类型的Retry对象可能不是完全互换.(如果有人想解决这个问题,我会在公关上获得+1.)

现在,如果您打算使用版本为的Retry对象,则需要直接从中导入.requestsurllib3