使用 pipdeptree 查看 python 环境中的依赖关系树

对于一个旧的使用 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

若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。

发表评论

您的电子邮箱地址不会被公开。

Scroll to top