Python依赖版本控制_requirements说明【教程】

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

Python项目依赖版本控制的核心是requirements.txt文件,它明确记录项目所需第三方包及其精确版本,确保不同环境(开发、测试、生产)安装一致的依赖,避免“在我机器上能跑”的问题。

requirements.txt怎么生成?

推荐使用pip freeze导出当前环境全部已安装包(含子依赖),适合快速锁定完整环境:

  • pip freeze > requirements.txt —— 覆盖写入
  • pip freeze >> requirements.txt —— 追加写入(慎用,易重复

⚠️ 注意:直接pip freeze会包含开发工具(如pipsetuptools)和非项目直接依赖,生产环境建议精简。

如何写更合理的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.txtprod.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适合简单项目。中大型项目建议配合:

  • Poetrypipenv:自动管理虚拟环境 + 锁定精确版本(poetry.lock / Pipfile.lock),比纯文本更可靠
  • pyproject.toml(PEP 518):现代Python标准配置文件,可替代setup.py并声明构建依赖
  • CI/CD中加一步pip check:验证已安装依赖间无版本冲突

不复杂但容易忽略:每次修改依赖后,记得重新生成或更新requirements.txt并提交到代码库。