如何通过pip仅安装requirements.txt中新增或升级的软件包?
解决方案
直接使用默认的pip3 install -r requirements.txt命令即可满足你的需求,不需要额外加风险参数,具体逻辑如下:
- 对于requirements.txt中版本未变更的包(比如
azure==4.0.0、google==3.0.0等),pip会自动检测已安装版本与需求版本匹配,直接跳过,不会执行卸载或重装操作; - 对于版本升级的包(比如
pandas从1.1.5升到1.4.3),pip会自动卸载旧版本并安装指定的新版本; - 对于新增的包(
google-api-python-client==2.52.0、pytest-check==1.0.4),pip会直接完成安装。
额外优化建议
如果想进一步控制依赖包的升级行为(避免不必要的依赖升级),可以显式添加--upgrade-strategy only-if-needed参数(这其实是pip的默认策略,写出后更直观):
pip3 install --upgrade-strategy only-if-needed -r requirements.txt
验证执行过程
如果想确认哪些包被处理、哪些被跳过,可以添加-v(verbose)参数查看详细日志:
pip3 install -v -r requirements.txt
关于--ignore-installed的风险
这个参数会强制安装requirements.txt中的所有包,完全忽略已安装的版本状态,甚至可能覆盖系统级依赖包引发环境混乱,确实存在很高风险,完全不适用于你的场景。
内容的提问来源于stack exchange,提问作者user14073111
相关产品推荐
相关产品推荐

