如何在使用requirements文件时让pip install的-I选项生效?

2 投票
1 回答
4560 浏览
提问于 2025-04-16 08:25

我觉得应该有办法做到这一点,但我就是想不明白:我想在一个虚拟环境中运行pip,使用一个需求文件,这样无论在我运行pip之前虚拟环境里已经安装了什么包,运行后这个需求文件里的所有要求(包括特定版本)都能完全满足。

现在的问题是,如果我在虚拟环境中安装的某个包的版本比需求文件里列出的旧,pip就会抱怨版本不匹配并退出(它应该直接把包更新到指定的版本)。我运行的命令是pip install -I -r requirements.txt,根据pip的帮助文档,-I应该让pip“忽略已安装的包(而是重新安装)”,但它显然没有这样做。

我漏掉了什么呢?

(如果pip能跳过那些已经满足的包就更好了。)

1 个回答

4

我找到了导致我使用pip时出现问题的原因。简单来说,虚拟环境的构建目录里残留的源代码导致了错误,导致包的升级失败。其实我应该在运行pip install之前,先清理那个目录(我想pip并不总是会自动清理)。这样做之后,配合--upgrade/-U这个选项,就能顺利完成我想要的操作。

撰写回答