Python 项目实战系列 — (4)requirements.txt / pyproject.toml 规范
目录
3️⃣ requirements.lock.txt(企业级)
四、pyproject.toml + Lock 文件(生产级)
六、requirements.txt vs pyproject.toml 对照表

一、工程选型建议
结论一句话
- 应用项目(Web / API / Lambda):
pyproject.toml+requirements.lock.txt - 库 / SDK / 内部包: 必须
pyproject.toml - 老项目 / 轻量脚本 / 运维:
requirements.txt
| 场景 | 推荐 |
| 新项目 | ⭐ pyproject.toml |
| 企业级 / 长期维护 | ⭐ pyproject.toml |
| Lambda / Docker | pyproject + lock |
| 一次性脚本 | requirements.txt |
| 发布私有包 | pyproject.toml |
二、requirements.txt 规范(传统但仍重要)
1️⃣ 基础规范(强制)
# 基础依赖(生产环境) requests==2.32.3 boto3==1.34.162 pydantic>=2.6,<3.0规则
| 规则 | 说明 |
| 一行一个依赖 | 禁止多包 |
| 必须锁主依赖 | == 或 >=,< |
| 禁止裸版本 | ❌ requests |
| 禁止安装时逻辑 | ❌ shell 命令 |
2️⃣ 分环境拆分(推荐)
# requirements/base.txt requests==2.32.3 boto3==1.34.162# requirements/dev.txt -r base.txt pytest==8.3.2 black==24.4.2# requirements/prod.txt -r base.txt gunicorn==22.0.03️⃣ requirements.lock.txt(企业级)
requests==2.32.3 urllib3==2.2.2 certifi==2024.7.4 charset-normalizer==3.3.2用于:
- CI
- Docker
- Lambda
- 生产部署