Python项目依赖版本控制的核心是requirements.txt文件,它明确记录项目所需第三方包及其精确版本,确保不同环境安装一致依赖,避免“在我机器上能跑”问题;推荐用pip freeze生成但需精简,生产环境应手动编写并合理约束版本。

Python项目依赖版本控制的核心是requirements.txt文件,它明确记录项目所需第三方包及其精确版本,确保不同环境(开发、测试、生产)安装一致的依赖,避免“在我机器上能跑”的问题。
requirements.txt怎么生成?
推荐使用pip freeze导出当前环境全部已安装包(含子依赖),适合快速锁定完整环境:
-
pip freeze > requirements.txt—— 覆盖写入 -
pip freeze >> requirements.txt—— 追加写入(慎用,易重复)
⚠️ 注意:直接pip freeze会包含开发工具(如pip、setuptools)和非项目直接依赖,生产环境建议精简。
如何写更合理的requirements?
手动编写或编辑requirements.txt更可控,只列出项目直接依赖,并合理约束版本:
立即学习“Python免费学习笔记(深入)”;
-
requests==2.31.0—— 精确锁定(适合生产,防止意外升级) django>=4.2, —— 兼容范围内允许小版本更新(推荐开发/预发)-
-e git+https://github.com/xxx/mylib.git@v1.2#egg=mylib—— 安装指定Git分支/Tag的包 -
-r base.txt—— 引入其他requirements文件(支持分层管理,如dev.txt、prod.txt)
安装时怎么用?
用pip install -r requirements.txt即可按文件逐行安装。常用组合:
-
pip install -r requirements.txt --no-deps—— 只装主依赖,跳过子依赖(调试用) -
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/—— 指定国内镜像源加速 -
pip install --upgrade -r requirements.txt—— 强制按文件重装并升级到指定版本
进阶建议:别只靠requirements.txt
单一requirements.txt适合简单项目。中大型项目建议配合:
-
Poetry 或 pipenv:自动管理虚拟环境 + 锁定精确版本(
poetry.lock/Pipfile.lock),比纯文本更可靠 -
pyproject.toml(PEP 518):现代Python标准配置文件,可替代
setup.py并声明构建依赖 - CI/CD中加一步
pip check:验证已安装依赖间无版本冲突
不复杂但容易忽略:每次修改依赖后,记得重新生成或更新requirements.txt并提交到代码库。










