如何使用uv原生工具定位项目依赖树中numpy版本被限制为2.0的原因?
如何使用uv原生工具定位项目依赖树中numpy版本被限制为2.0的原因?
当然有办法用uv原生工具实现这个需求啦!你只需要给uv tree加一个关键参数,就能直接看到每个依赖包对numpy的版本约束,不用再手动逐个排查了。
直接执行这条命令:
uv tree --invert --package numpy --show-constraints
参数说明:
--invert --package numpy:和你之前使用的作用一致,反向生成以numpy为核心的依赖树,展示哪些包直接或间接依赖了numpy--show-constraints:这就是实现类似pipdeptree效果的关键参数,它会直接在每个依赖包后面标注出对numpy的具体版本要求
执行后你会得到这样的输出(和你用pipdeptree的结果几乎一致):
numpy v2.0.2 ├── numba v0.60.0 [requires: numpy >=1.22,<2.1] | └── my_main_project v0.1.0 [requires: numba >=0.60] ├── matplotlib v3.9.3 [requires: numpy >=1.23] └── scipy v1.14.1 [requires: numpy >=1.23.5,<2.3]
这样你一眼就能看出来,是numba的numpy <2.1约束把numpy的版本限制在了2.0.x系列,完美解决手动排查的麻烦!
如果你的项目里有开发依赖,想排除它们的话,还可以再加一个--no-dev参数:
uv tree --invert --package numpy --show-constraints --no-dev
备注:内容来源于stack exchange,提问作者mzoll
相关产品推荐
相关产品推荐

