为什么你的Python项目总在环境配置上栽跟头?
每当团队协作或部署项目时,你是否经常遇到『在我电脑上能运行』的经典问题?**requirements.txt** 文件正是解决这一痛点的金钥匙。这个看似简单的文本文件,却是Python项目依赖管理的核心,但许多开发者对其使用仍存在大量误区。
创建requirements.txt的三种科学方式
1. 手动编写基础版本
- 新建文本文件并重命名为requirements.txt
- 每行写入一个包名,例如:
numpy pandas>=1.0.0 flask==2.0.1 - 符号说明:
> 安装不低于指定版本
== 安装精确版本
# 后面可添加注释
2. 自动生成(推荐)
- 在虚拟环境中执行:
pip freeze > requirements.txt - 会记录所有安装包及其精确版本
- 适用于已有项目依赖固化
3. 高级工具辅助
- 使用
pipreqs工具:
pip install pipreqs
pipreqs /项目路径 --encoding=utf8 - 优点:只扫描实际import的包
- 避免pip freeze包含无用依赖
安装依赖的实战技巧
基础安装方式
- 标准安装命令:
pip install -r requirements.txt - 常见报错处理:
• 网络问题:添加--default-timeout=100
• 权限问题:追加--user参数
你可能想问...
Q:如何只安装生产环境必需的包?
A:可以创建requirements_prod.txt,使用-e参数排除开发依赖:
pip install -r requirements_prod.txt
版本冲突解决方案
| 问题现象 | 解决方法 |
|---|---|
| 同时需要包A v1和包B v2(互斥) | • 寻找兼容版本 • 联系库作者更新 • 考虑虚拟环境隔离 |
进阶管理策略
多环境依赖管理
- 推荐文件结构:
• requirements_base.txt(公共依赖)
• requirements_dev.txt(开发工具)
• requirements_test.txt(测试专用) - 通过
-r参数引用基础文件:
-r base.txt pylint pytest

依赖安全审计
- 使用
safety检查漏洞:
pip install safety
safety check -r requirements.txt - 定期更新陈旧依赖:
pip list --outdated
常见问题排雷指南
- 为什么安装后版本不一致?
• 检查是否有多个requirements文件被覆盖
• 确认未激活其他虚拟环境 - 如何处理私有仓库的包?
• 添加--extra-index-url参数
• 或使用git+https://直接引用
随着项目规模扩大,你会发现合理的requirements.txt管理能为团队协作节省大量调试时间。不妨现在就去检查你的项目依赖文件,是否还停留在原始的pip freeze阶段?