当前位置:首页>python>告别依赖地狱!一个Python脚本,一键检查所有依赖包版本

告别依赖地狱!一个Python脚本,一键检查所有依赖包版本

  • 2026-10-11 08:42:33
告别依赖地狱!一个Python脚本,一键检查所有依赖包版本

还在为“缺少模块”、“版本不兼容”焦头烂额?手把手教你用脚本自动化检查项目依赖


在Python开发中,依赖管理几乎是每个项目都绕不开的难题。尤其是当你的项目依赖几十甚至上百个第三方库时,换一台电脑、部署到新服务器,甚至同事拉取代码后,经常因为某个包版本不对或根本没装而运行失败。

每次遇到 ModuleNotFoundError 或者 ImportError,

Python 项目依赖管理一直是个不大不小的难题。
requirements.txt 里写得明明白白:aiohttp==3.12.15,可一跑项目,控制台就报错:

ModuleNotFoundError: No module named 'aiohttp'
或者更隐蔽的:
ImportError: this version of aiohttp is too old, need >=3.12.0
你是不是都要:
  1. 翻开 requirements.txt 对着列表一个一个 pip list 查看?
  2. 手动比对版本号,看哪个低了、哪个没装?
  3. 再一条一条敲 pip install 命令……

如果你经历过这种痛苦,那么今天这篇文章就是为你准备的。

痛点:依赖包检查,手工操作太折磨人

我最近接手了一个自动化测试项目,依赖包列表足足有160多个!包括UI自动化、JWT认证、OCR识别、WebSocket推送等各类库。要求版本精确到次版本号(比如 aiohttp==3.12.15)。同事运行代码时总报错,排查了半天才发现是某个依赖版本落后了。

手动检查160个包?那简直就是数星星——眼睛看花,脑袋发晕,还容易漏掉。

于是我写了一个Python依赖包自动检查脚本。只需要双击运行,它就能:

  • 自动扫描当前环境所有已安装的包
  • 逐条比对要求的版本(支持 ==、>=、<= 等多种约束)
  • 用彩色输出清晰标记:已安装正确的、版本不符的、完全缺失的
  • 最后自动生成一键安装/升级命令,复制粘贴即可修复

脚本核心功能一览

脚本的名字叫 check_packages.py,别被“advanced”吓到,其实用起来非常简单。

1. 智能解析依赖文件

你只需要把依赖列表(像 requirements.txt 那样的格式)以多行字符串的形式粘贴到脚本里,它就能自动解析出每个包的名称和版本约束。

REQUIRED_PACKAGES = """aiofiles==25.1.0
aiohttp==3.12.15
playwright>=1.40.0
...
"""

2. 精准版本比对

脚本调用 packaging.version 库进行版本号比较,支持:

  • == 精确匹配
  • >=、<=、>、< 范围匹配
  • 无版本约束(即任何版本都算满足)

如果已安装的版本不符合要求(比如要求 selenium==4.15.2,但实际是 4.10.0),会被归入“需要升级”类别。

3. 清晰的三色输出

为了让你一眼看清问题,脚本使用了ANSI颜色(Windows 10以上终端也支持):

  • 🟢 绿色:已安装且版本正确
  • 🟡 黄色:版本不符,需要升级
  • 🔴 红色:完全未安装

输出示例:

✔ 已安装且版本正确 [152 个]
────────────────────────────────────────────────────────────
  ✔ aiofiles           已安装: 25.1.0     要求: ==25.1.0
  ✔ aiohttp            已安装: 3.12.15    要求: ==3.12.15
  ...

⚠ 版本不符 (需要升级) [3 个]
────────────────────────────────────────────────────────────
  ⚠ selenium           已安装: 4.10.0     要求: ==4.15.2
  ⚠ playwright         已安装: 1.40.0     要求: >=1.40.0

✘ 未安装 [5 个]
────────────────────────────────────────────────────────────
  ✘ allure-pytest                        要求: ==2.15.0
  ✘ browser-use                          要求: ==0.10.1

4. 一键生成修复命令

最实用的功能来了——脚本会把所有需要安装或升级的包自动拼接成一条 pip install 命令,并且区分普通安装和 --upgrade 升级。

 快速修复方案
────────────────────────────────────────────────────────────
  命令 1:
    pip install allure-pytest==2.15.0 browser-use==0.10.1 ...

  命令 2:
    pip install --upgrade selenium==4.15.2 playwright>=1.40.0

   已生成 requirements 文件: requirements_fix.txt
     可执行: pip install -r requirements_fix.txt

你只需要复制命令,在终端里粘贴执行,所有有问题的包就会自动被安装或升级到正确版本。

5. 保存检查报告

每次运行还会自动生成一个 check_report.txt 文件,里面记录了完整的检查结果。你可以把它发给团队成员,或者自己存档,方便追溯。

如何使用这个脚本?

第一步:保存脚本

将文末提供的完整代码复制到一个文本文件中,命名为 check_packages.py。

第二步:修改依赖列表

如果你有自己的项目依赖,只需要替换脚本中 REQUIRED_PACKAGES 变量的内容即可。格式完全兼容 pip freeze 的输出。

第三步:运行脚本

打开命令行(cmd或PowerShell),进入脚本所在目录,执行:

python   check_packages.py

第四步:根据提示修复

看最后生成的命令,复制粘贴到终端执行,所有问题包就搞定了。

技术亮点

  • 无额外依赖:除了Python标准库,只需要 packaging 库(通常pip自带,没有的话脚本会提示你安装)。
  • 跨平台支持:Windows、macOS、Linux均可运行。
  • 健壮的包名匹配:自动处理包名中的连字符和下划线差异(例如 djangorestframework-simplejwt 和 djangorestframework_simplejwt 视为同一个包)。
  • 智能版本比较:能正确比较 1.2.0 和 1.2.0.post1 这类特殊版本号。
  • 可定制性强:你可以轻松修改输出格式、颜色、显示数量等。

适用场景

  • 项目初始化:新同事入职,拉取代码后一键检查环境。
  • CI/CD 流水线:在自动化构建过程中验证依赖版本,提前发现不兼容问题。
  • Docker 镜像构建:确保镜像内所有Python包版本符合要求。
  • 多环境同步:开发、测试、生产环境依赖一致性检查。

最后

依赖管理是Python开发中看似琐碎、却极其影响效率的一环。与其每次手动 pip list | grep xxx,不如花几分钟配置好这个脚本,以后每次环境出问题,只需运行一下,所有问题一目了然。

如果你是团队的技术负责人,强烈建议把这个脚本加入项目工具集,规范依赖检查流程,节省大家的时间。

关注本公众号,回复“python依赖检查”获取完整脚本代码。如果你觉得有用,欢迎点赞、在看、转发给需要的朋友。

最新文章

随机文章