pip-tools¶
pip-tools 从项目中直接使用的包列表中创建所有依赖项的锁定文件,并确保仅安装这些依赖项。
Python 包管理工具,旨在帮助开发者 更好地管理依赖包及其版本,确保环境的可重复性和可维护性。
主要包含两个命令行工具:
pip-compile pip-sync
pip-compile¶
作用: 从一个简洁的 requirements.in 文件生成一个详细的、可直接使用的 requirements.txt 文件,锁定所有依赖的具体版本(包括子依赖)。
- 优势:
自动处理依赖冲突。
可以轻松升级或固定某些依赖版本。
类似于 poetry lock 或 npm package-lock.json 的功能,但更轻量灵活,适用于 pip 用户。
示例:
# 先写 requirements.in,里面只写你关心的包 # requirements.in Django>=3.2 requests # 然后运行 pip-compile requirements.in # 生成 requirements.txt,内容大概是 # Django==3.2.14 # pytz==2024.1 # requests==2.31.0 # certifi==2024.2.2
pip-sync¶
作用:根据 requirements.txt,同步你的虚拟环境,安装缺失依赖,删除多余依赖,确保环境和 requirements.txt 完全一致。
示例:
pip-sync requirements.txt
适合人群¶
喜欢使用 pip,但又希望有类似于 poetry 或 pipenv 的依赖锁定能力。
想要明确掌控依赖版本,避免 “依赖地狱”。
团队协作中需要保证所有人开发环境一致。