You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何找出Python项目未使用的安装包以精简requirements.txt

解决方案

方法1:使用pipreqs自动扫描代码依赖(最常用)

  • 安装工具:pip install pipreqs
  • 进入项目根目录后执行扫描:pipreqs ./ --encoding=utf8
    • 该命令会自动递归扫描所有子目录下的.py文件,识别所有import语句对应的第三方包,直接生成仅包含项目实际用到的顶层依赖的requirements.txt文件
    • 如果本地已经存在旧的requirements.txt,可以加--force参数强制覆盖:pipreqs ./ --encoding=utf8 --force
  • 注意:如果你的代码里存在动态导入(比如通过importlib、__import__实现的导入),这类导入pipreqs无法自动识别,需要手动补充到依赖列表中

方法2:使用pigar实现更精细化的依赖排查

pigar相比pipreqs功能更完善,还支持追溯每个依赖被使用的具体文件位置,适合需要核对的场景:

  • 安装工具:pip install pigar
  • 生成依赖列表:pigar generate
  • 如需查询特定包的使用位置,执行:pigar show <包名>,比如pigar show flask就能看到项目中哪些文件导入了flask

方法3:结合依赖树工具手动核对(适合需要精准控制的场景)

如果你需要自己核对所有依赖的引用关系,可以结合pipdeptree使用:

  • 安装工具:pip install pipdeptree
  • 执行命令生成完整依赖树:pipdeptree
    • 输出中没有被其他包依赖的就是顶层安装包,你可以把这些顶层包和你代码里实际导入的包逐一比对,剔除从未被导入的部分,再保留对应的子依赖即可

最终校验步骤

生成干净的依赖列表后,建议做一次完整性校验:

  1. 新建一个空白虚拟环境
  2. 安装你生成的requirements.txt:pip install -r requirements.txt
  3. 跑通项目所有功能和测试用例,确认没有ModuleNotFoundError报错,避免遗漏动态导入、可选功能依赖的包

内容的提问来源于stack exchange,提问作者Nathan Wailes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 00:06:02