ChatGPT解决这个技术问题 Extra ChatGPT

我可以强制 pip 重新安装当前版本吗?

我遇到过当前版本的软件包似乎无法正常工作并需要重新安装的情况。但 pip install -U 不会触及已经是最新的包。我看到了如何通过首先卸载(使用 pip uninstall)然后安装来强制重新安装,但是有没有办法在一个步骤中简单地强制“更新”到名义上的当前版本?

对于那些希望自己重新安装 pip 的人(如果它由于某种原因停止工作;)),可以在 this SO q&a 中找到答案

a
arturomp
pip install --upgrade --force-reinstall <package>

升级时,重新安装所有软件包,即使它们已经是最新的。

pip install -I <package>
pip install --ignore-installed <package>

忽略已安装的软件包(而是重新安装)。


使用 --target= 标志时有什么方法可以强制覆盖?这些都不适合我。我得到目标路径已经存在错误。
@mrgloom using cached只是意味着它使用在上次安装时缓存的源文件。要强制重新下载,请使用 --no-cache-dir 标志。
pip install -U,简称。 (并且很少需要 --force-reinstall 选项)
请注意,此命令还会重新安装所有依赖项。添加 --no-deps 以避免这种情况,如下面的 Finn 回答中所建议的那样。
这不适用于更新 pip 本身
F
Finn Årup Nielsen

您可能希望拥有所有三个选项:--upgrade--force-reinstall 确保重新安装,而 --no-deps 避免重新安装依赖项。

$ sudo pip install --upgrade --no-deps --force-reinstall <packagename>

否则你可能会遇到 pip 开始重新编译 Numpy 或其他大包的问题。


这也适用于离线安装,而例外答案则不然。
对于具有大量不需要重新安装的依赖项的软件包,这是一个更好的解决方案。
sudo 对我来说至关重要。
为什么我们在使用 --force-reinstall 时需要 --upgrade
macOS:您不应该在 mac 上使用 pip 运行 sudo。以管理员权限用户身份运行,但没有 sudo 。在 Linux (Ubuntu) 上:使用 sudo 运行为所有用户安装是有意义的。不要使用 --user 运行 sudo,因为这只会在 root 用户下安装软件包。
D
Davy

如果要重新安装 requirements.txt 文件中指定的软件包而不升级,那么只需重新安装 requirements.txt 文件中指定的特定版本:

pip install -r requirements.txt --ignore-installed

如果您想避免使用本地缓存,请添加选项 --no-cache-dir
A
Anis LOUNIS aka AnixPasBesoin
--upgrade --force-reinstall

似乎不会强制使用带有 pip-1.5 的 python2.7 重新安装

我不得不使用

--no-deps --ignore-installed

除了 --force-reinstall 之外,您还必须指定 --upgrade,否则它不会有任何效果。
J
Jorge Cribb

如果您需要强制重新安装 pip 本身,您可以执行以下操作:

python -m pip install --upgrade --force-reinstall pip

m
mrgloom
sudo pip3 install --upgrade --force-reinstall --no-deps --no-cache-dir <package-name>==<package-version>

一些相关的答案:

Difference between pip install options "ignore-installed" and "force-reinstall"


D
Daniel

如果您有一个包含大量软件包的文本文件,则需要添加 -r 标志

pip install --upgrade --no-deps --force-reinstall -r requirements.txt