为什么在执行--upgrade时,已安装的相同包的Pip还在寻找下载缓存?

0 投票
1 回答
969 浏览
提问于 2025-04-16 17:17

这是在Windows系统上。我在全局的包管理目录里安装了lxml的二进制文件(.egg文件)。现在我正在创建一个虚拟环境,并尝试从全局环境中获取同样的egg文件。

virtualenv.exe mynewvenv
call mynewvenv\Scripts\activate.bat

所以当我运行“pip freeze”时,它会给我显示我在全局环境中安装的那个egg文件。

现在我在下载缓存里有一个同样的lxml包的压缩包版本(源代码),名字和版本都一样。如果我运行“pip install --upgrade”,它实际上是从下载缓存中取这个压缩包(源代码)来安装,而没有检查同样的包已经安装过了(虽然是以egg的形式)。为什么pip会这样呢?理想情况下,Pip应该输出类似“已经满足要求”的信息,然后继续进行,不是吗?

更新:我刚发现“easy_install”也表现得很奇怪,跟这个情况一样。

1 个回答

1

当你使用 pip install --upgrade 这个命令时,它会总是重新安装这个软件包和它需要的其他软件。

如果我没记错的话,这是唯一一种强制重新安装的方法。

撰写回答