用 Rust 编写的极速 Python 包与项目管理工具,可替代 pip、virtualenv、pyenv 等多种工具。
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
激活项目的虚拟环境并安装 pip-tools
python -m pip install pip-tools - 2
将 requirements.in 编译为固定版本的 requirements.txt
pip-compile requirements.in - 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 数据每日更新。
相关项目
9.2万+283 本周3763RustApache-2.0更新于 17小时前
一款 Python 虚拟环境与依赖管理工具,把 pip 和 virtualenv 整合在一起,通过 Pipfile 和锁文件实现可复现构建。
2.5万+3 本周1888PythonMIT维护活跃更新于 前天
一个 Python 工具,可将应用及其依赖打包成单个可执行的 .pex 文件,类似可移植的虚拟环境。
4226322PythonApache-2.0维护活跃更新于 24小时前
从 Git 或 Mercurial 标签自动生成 Python 包版本号,并与 setuptools 集成。
954+1 本周251Python无许可证维护活跃更新于 18小时前
一个 Python 启动工具,单次运行时临时安装依赖,运行结束后自动清理。
14321Python无许可证更新于 9天前
Python 官方标准包安装工具,用于从 PyPI 及其他索引安装软件包。
1万+5 本周3433PythonMIT更新于 4天前