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

时间:2015-03-06 17:47:09

标签: python python-requests urllib3

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

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

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

由于

2 个答案:

答案 0 :(得分:9)

您可能需要更新版本的请求。我只是尝试了v2.5.1:

from requests.packages.urllib3.util import Retry

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

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

from urllib3.util import Retry

很遗憾,我们会检查isinstanceRetryPoolManager的具体ConnectionPool类型,因此两种类型的Retry对象可能无法完全互换。 (如果有人想解决这个问题,我会在公关上打+1。)

目前,如果您打算将Retry对象与requests urllib3版本一起使用,则需要直接从中导入。

答案 1 :(得分:4)

请求不再在request.package中出售模块

您需要直接引用urllib3