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

oro*_*ome 454 python packages pip

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

KGo*_*KGo 664

pip install --upgrade --force-reinstall <package>
Run Code Online (Sandbox Code Playgroud)

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

pip install -I <package>
pip install --ignore-installed <package>
Run Code Online (Sandbox Code Playgroud)

忽略已安装的软件包(重新安装).

  • 请注意,此命令还会重新安装所有依赖项。添加 `--no-deps` 以避免这种情况,如下面 Finn 的回答中所建议的。 (6认同)
  • 使用 --target= 标志时有什么方法可以强制覆盖?这些都不适合我。我得到目标路径已经存在错误。 (2认同)
  • 从 pip 10.0 开始,不需要在使用 `--force-reinstall` 时包含 `--upgrade`,仅供参考:https://github.com/pypa/pip/issues/1139 (2认同)
  • @mrgloom“使用缓存”只是意味着它使用上次安装时缓存的源文件。要强制重新下载,请使用“--no-cache-dir”标志。 (2认同)
  • 这不适用于更新 pip 本身 (2认同)

Fin*_*sen 163

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

$ sudo pip install --upgrade --no-deps --force-reinstall <packagename>
Run Code Online (Sandbox Code Playgroud)

否则,您可能会遇到pip开始重新编译Numpy或其他大型软件包的问题.

  • 对于不需要重新安装大量依赖项的软件包,这是一个更好的解决方案。 (3认同)
  • 为什么当我们使用“--force-reinstall”时需要“--upgrade”? (3认同)
  • 这也适用于离线安装,而例外的答案则不然。 (2认同)

Dav*_*avy 29

如果要重新安装requirements.txt文件中指定的软件包而不进行升级,请重新安装requirements.txt文件中指定的特定版本:

pip install -r requirements.txt --ignore-installed
Run Code Online (Sandbox Code Playgroud)


ane*_*mes 26

--force-reinstall
Run Code Online (Sandbox Code Playgroud)

似乎没有强制使用python2.7与pip-1.5重新安装

我必须使用

--no-deps --ignore-installed
Run Code Online (Sandbox Code Playgroud)

  • 除了`--force-reinstall`之外,你必须指定`--upgrade`,否则它将没有任何效果. (18认同)

mrg*_*oom 11

sudo pip3 install --upgrade --force-reinstall --no-deps --no-cache-dir <package-name>==<package-version>
Run Code Online (Sandbox Code Playgroud)

一些相关的答案:

pip 安装选项“忽略安装”和“强制重新安装”之间的区别


小智 8

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

python -m pip install --upgrade --force-reinstall pip
Run Code Online (Sandbox Code Playgroud)


Dan*_*iel 5

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

pip install --upgrade --no-deps --force-reinstall -r requirements.txt
Run Code Online (Sandbox Code Playgroud)