对于一个旧的使用 pip
来管理依赖的 python
项目,随着不同开发人员持续的更新迭代,如果控制不是很严格,在某个模块被废弃或被其他方案替代时,没有及时的清理相关代码及相关依赖,就导致环境中的依赖越来越多,这为以后的开发埋下了隐患,如果项目运行在 docker
中,那么镜像体积会越来越大。
对于这个情况,介绍一个查看 python
环境中的依赖关系树的工具 pipdeptree
,它的使用非常简单,却非常实用。
使用 pipdeptree
# 安装
pip install pipdeptree
# 查看某个包的依赖树
pipdeptree -p requests
# 查看当前环境的所有依赖树
pipdeptree
输出示例:
pipdeptree -p LAC
LAC==2.1.2
- paddlepaddle [required: >=1.6, installed: 2.5.2]
- astor [required: Any, installed: 0.8.1]
- decorator [required: Any, installed: 5.1.1]
- httpx [required: Any, installed: 0.24.1]
- certifi [required: Any, installed: 2022.12.7]
- httpcore [required: >=0.15.0,<0.18.0, installed: 0.17.1]
- anyio [required: >=3.0,<5.0, installed: 3.7.1]
- exceptiongroup [required: Any, installed: 1.3.0]
- typing-extensions [required: >=4.6.0, installed: 4.7.1]
- idna [required: >=2.8, installed: 2.8]
- sniffio [required: >=1.1, installed: 1.3.1]
- typing-extensions [required: Any, installed: 4.7.1]
- certifi [required: Any, installed: 2022.12.7]
- h11 [required: >=0.13,<0.15, installed: 0.14.0]
- typing-extensions [required: Any, installed: 4.7.1]
- sniffio [required: ==1.*, installed: 1.3.1]
- idna [required: Any, installed: 2.8]
- sniffio [required: Any, installed: 1.3.1]
- numpy [required: >=1.13, installed: 1.21.6]
- opt-einsum [required: ==3.3.0, installed: 3.3.0]
- numpy [required: >=1.7, installed: 1.21.6]
- Pillow [required: Any, installed: 7.2.0]
- protobuf [required: >=3.20.2, installed: 4.24.4]
输出中除了会显示主包的版本号,还会按照分层级输出这个包的依赖树,当你质疑为啥环境里会有这个包?或者产生依赖版本冲突时就很好排查和解决问题。
标题:使用 pipdeptree 查看 python 环境中的依赖关系树
原文链接:https://beltxman.com/4555.html
若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。