Repolode
pypa

pypa/pip-tools

一组命令行工具(pip-compile 与 pip-sync),用于将 Python 依赖锁定为可复现的 requirements 文件,并让虚拟环境与之保持同步。

Star
8,003
Fork
686
未关闭 Issue
174
最近提交
昨天

这是什么?

pip-tools 帮助 Python 项目在锁定依赖版本的同时保持依赖更新,让构建过程可预测。pip-compile 可从 pyproject.toml、setup.py、setup.cfg 或 requirements.in 中读取依赖,生成包含所有间接依赖且版本固定的 requirements.txt,并可选择生成 pip 哈希校验所需的哈希值。

pip-sync 根据编译好的依赖文件,在当前虚拟环境中安装、升级或卸载包,使环境与文件内容完全一致。升级可针对全部包或指定包进行,分层的依赖文件还能相互约束,从而保证开发与生产环境的版本一致。

核心功能

  • 01从 pyproject.toml、setup.py、setup.cfg 或 requirements.in 生成版本固定的 requirements.txt。
  • 02输出包含间接依赖,并标注每个依赖由哪个包引入。
  • 03通过 --generate-hashes 生成 pip 哈希校验所需的 sha256 哈希。
  • 04支持用 --upgrade 或 --upgrade-package 升级全部或指定的包。
  • 05pip-sync 可让虚拟环境与依赖文件内容完全一致。
  • 06支持相互约束的分层依赖文件,便于区分开发与生产环境。

适用场景

  • 为应用锁定依赖,实现可复现的生产环境构建。
  • 让开源库的 CI 环境保持稳定,同时有计划地更新依赖版本。
  • 用共享约束维护独立的生产与开发依赖文件。
  • 将 pip-compile 配置为 pre-commit 钩子,在输入变化时自动重新生成锁定文件。

快速上手

  1. 1

    激活项目的虚拟环境并安装 pip-tools

    python -m pip install pip-tools
  2. 2

    将 requirements.in 编译为固定版本的 requirements.txt

    pip-compile requirements.in
  3. 3

    同步虚拟环境使其与 requirements.txt 一致

    pip-sync

标签

#python#dependency-management#pip#requirements#lockfile#packaging#hashes#pip-compile#pip-tools#setuptools

常见问题

pip-tools 是什么?
一组命令行工具(pip-compile 与 pip-sync),用于将 Python 依赖锁定为可复现的 requirements 文件,并让虚拟环境与之保持同步。 pip-tools 帮助 Python 项目在锁定依赖版本的同时保持依赖更新,让构建过程可预测。pip-compile 可从 pyproject.toml、setup.py、setup.cfg 或 requirements.in 中读取依赖,生成包含所有间接依赖且版本固定的 requirements.txt,并可选择生成 pip 哈希校验所需的哈希值。
pip-tools 可以免费使用吗?用的什么许可证?
pip-tools 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
pip-tools 还在维护吗?
活跃维护中。pip-tools 最近一次提交是在 2026年11月6日。
pip-tools 适合用来做什么?
为应用锁定依赖,实现可复现的生产环境构建。 让开源库的 CI 环境保持稳定,同时有计划地更新依赖版本。 用共享约束维护独立的生产与开发依赖文件。 将 pip-compile 配置为 pre-commit 钩子,在输入变化时自动重新生成锁定文件。
pip-tools 怎么安装和运行?
激活项目的虚拟环境并安装 pip-tools: python -m pip install pip-tools 将 requirements.in 编译为固定版本的 requirements.txt: pip-compile requirements.in 同步虚拟环境使其与 requirements.txt 一致: pip-sync
在哪里获取 pip-tools?
源代码和安装说明在 GitHub 上:https://github.com/pypa/pip-tools

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目