精准控制 requirements.txt
内容的解决方案:
- 使用 pipreqs 自动生成(推荐)
• 原理:扫描项目内pip install pipreqs pipreqs /项目路径 --force
.py
文件的import
语句生成依赖清单
• 优势:自动排除环境内安装但未实际使用的库 - 手动筛选依赖项
• 人工比对pip freeze > all_deps.txt # 生成全环境清单
all_deps.txt
与项目代码中的导入语句
• 仅保留实际被调用的库 - 虚拟环境纯净安装
python -m venv clean_venv # 新建虚拟环境 source clean_venv/bin/activate # 激活环境 pip install -e . # 通过setup.py安装 pip freeze > requirements.txt # 此时生成的必为项目相关依赖
- 进阶工具 pip-chill
• 自动忽略pip、setuptools等基础依赖pip install pip-chill pip-chill --no-version > requirements.txt
注意事项:
- 对于动态导入(
__import__()
或插件架构)的库,需手动补充 - 测试依赖建议单独存为
requirements_test.txt
- 可用
grep -r \"import\" /项目路径
辅助验证
如果需要进一步排除开发工具类库(如pytest、black等),可添加--exclude
参数:
pipreqs --exclude black,pytest /项目路径