pip-tools ######### * https://github.com/jazzband/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 的依赖锁定能力。 * 想要明确掌控依赖版本,避免 “依赖地狱”。 * 团队协作中需要保证所有人开发环境一致。