如何强制pip-compile使用虚拟环境中已安装的依赖版本?
让pip-compile采用本地已安装的依赖版本
有几种实用方法可以让pip-compile优先使用虚拟环境里已装的依赖版本,不用手动在requirements.in里逐个指定:
方法1:用--use-local参数
直接给pip-compile加--use-local选项,它会强制优先用本地虚拟环境里已安装的包版本,只有本地没这个包的时候才去PyPI拉最新兼容版。
执行命令:
pip-compile --use-local requirements.in
方法2:结合约束文件(灵活可控)
先把当前虚拟环境的已装包版本导出成约束文件,再让pip-compile参考这个文件生成requirements.txt:
- 导出本地依赖到约束文件:
pip freeze > constraints.txt
- 带着约束文件执行pip-compile:
pip-compile --constraint constraints.txt requirements.in
这种方式好处是你可以手动编辑constraints.txt,只固定你需要的包版本,不用全量固定。
方法3:用--no-upgrade参数
这个参数会让pip-compile不升级已有的依赖版本,只补充缺失的依赖。不过要注意,它会先参考已有的requirements.txt(如果存在),再结合本地安装的版本,适合已经生成过requirements.txt的场景。
执行命令:
pip-compile --no-upgrade requirements.in
内容的提问来源于stack exchange,提问作者Nico
相关产品推荐
相关产品推荐

