Urllib3 今天发布了一个新版本,其中对 Python 2.6 进行了一些重大更改。 虽然我们解决了任何其他可能的不兼容问题,但下周请求仍将与 urllib3 1.21.1 到 1.23 兼容。
如果您由于 pip 的依赖项解析而遇到问题,则需要在您的包要求中固定 ˋurllib3==1.23`。
python 3.6 和 urllib3 1.24 同样的问题:
/usr/lib/python3.6/site-packages/requests/__init__.py:91: RequestsDependencyWarn ing: urllib3 (1.24) 或 chardet (3.0.4) 与支持的版本不匹配!
请求依赖警告)
只有警告不要阻止我的程序
同样的问题,在pip install
期间出现此消息:
requests 2.19.1 has requirement urllib3<1.24,>=1.21.1, but you'll have urllib3 1.24 which is incompatible.
执行时出现此错误:
/usr/lib/python2.7/site-packages/gitlab/__init__.py:29: in <module>
import requests
/usr/lib/python2.7/site-packages/requests/__init__.py:112: in <module>
from . import utils
/usr/lib/python2.7/site-packages/requests/utils.py:24: in <module>
from . import certs
E ImportError: cannot import name certs
固定urllib3==1.23
作为一种解决方法
固定解决方法,但希望这不是一个永久的解决方案。
#我也是
PS E:\Test> pip check
requests 2.19.1 has requirement urllib3<1.24,>=1.21.1, but you have urllib3 1.24.
PS E:\Test>
https://pypi.org/project/urllib3/#history
https://pypi.org/project/requests/#history
新👏发布👏现在👏(很快?)
如果你允许我提出一个温和的建议:
争取在未来更好地协调,以避免发布不兼容的更改。
毕竟这不是 Python 吗? 据说现在都长大了,大而专业。
@Hrxn需要说明的是,自 urllib3 发布以来,我们刚刚超过了 24 小时的门槛。 我们提供了解决方法并在数小时内发布了带有修复程序的补丁以供审核。 这与已经实施了几年的发布过程相同。
要求仅由志愿者运行的项目立即采取行动并不能更快地完成工作。 当我们确信它已经准备好并且不会给一个非常大的生态系统带来额外的问题时,它就会准备好。
我的构建现在失败了
Collecting urllib3<1.24,>=1.21.1 (from requests->chancellor==0.0.5)
Could not find a version that satisfies the requirement urllib3<1.24,>=1.21.1 (from requests->chancellor==0.0.5) (from versions: 1.24)
不知道为什么以前的版本不能被pip拉取。 有什么建议?
@nateprewitt我不要求任何东西,我只是对 urllib3 维护者是否愿意让您知道兼容性会被破坏感兴趣?
@ror6ax在发布之前,urllib3 方面已经知道了重大更改。 许多人看到的问题是,尽管请求将 urllib3 版本固定为 <1.24,>=1.21.1,但仍在安装新发布的版本(可能是用户列表中的另一个不受限制的依赖项)。 Pip 不是依赖解析器,这就是为什么固定应用程序依赖(至少!)很重要的原因,并且可以选择使用具有真正依赖解析器的工具,如 Pipenv 或 Poetry。
Requests v2.20.0 已经上传到 pypi.org。 现在应该解决问题。 我将把它打开一段时间以供能见度,然后在今晚关闭它。
感谢@nateprewitt解决此问题并在 72 小时内解决问题:)
谢谢@nateprewitt
最有用的评论
@Hrxn需要说明的是,自 urllib3 发布以来,我们刚刚超过了 24 小时的门槛。 我们提供了解决方法并在数小时内发布了带有修复程序的补丁以供审核。 这与已经实施了几年的发布过程相同。
要求仅由志愿者运行的项目立即采取行动并不能更快地完成工作。 当我们确信它已经准备好并且不会给一个非常大的生态系统带来额外的问题时,它就会准备好。