我在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
谁能告诉我为什么会这样?有没有其他依赖我不知道成功运行这行代码?
由于
答案 0 :(得分:9)
您可能需要更新版本的请求。我只是尝试了v2.5.1:
from requests.packages.urllib3.util import Retry
似乎工作。仅供参考:最新版本为v2.5.3,值得升级。
此外,如果您单独安装了相当新版本的urllib3,这也应该有效:
from urllib3.util import Retry
很遗憾,我们会检查isinstance
和Retry
中PoolManager
的具体ConnectionPool
类型,因此两种类型的Retry
对象可能无法完全互换。 (如果有人想解决这个问题,我会在公关上打+1。)
目前,如果您打算将Retry
对象与requests
urllib3
版本一起使用,则需要直接从中导入。
答案 1 :(得分:4)
请求不再在request.package中出售模块
您需要直接引用urllib3