当我运行pip wheel sentry-sdk
时,它会下载以下轮子文件:
certifi-2020.6.20-py2.py3-none-any.whl
sentry_sdk-0.18.0-py2.py3-none-any.whl
urllib3-1.25.10-py2.py3-none-any.whl
其中sentry_sdk-0.18.0-py2.py3-none-any.whl
是我实际想要使用的库,其他是该库工作所需的可传递依赖项。我知道该文件来自PyPI,但我不明白pip wheel
是如何选择上述可传递依赖项的版本的。
更多上下文
我的根本问题是,已解决的urllib3
版本与已添加到我正在处理的项目的pex文件中的另一个版本冲突(我正在使用Bazel生成pex(。我正在考虑降级urllib3
版本,以匹配我的项目现有版本。看看GitHub中sentry-sdk
中的setup.py
,它说它只要求它大于1.10.0
("urllib3>=1.10.0"
(,所以我认为降级会起作用,但我想确保避免生产崩溃。
感谢
当前版本的pip(2020-10-13(没有依赖解析程序,它贪婪地选择第一个约束(因此,如果首先遇到无限制的urllib3
,它将选择最新版本——即使以后的包有更严格的要求(
这是在pip中更改的,您可以在pip>20.2,它将在未来(今年晚些时候(成为默认