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


507

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


PIP它的自我为那些希望重新安装(如果它停止出于某种原因工作;)),得到的回答中可以找到这个 SO Q&A
nsof

Answers:


744
pip install --upgrade --force-reinstall <package>

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

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

忽略已安装的软件包(改为重新安装)。


1
使用--target =标志时是否有强制覆盖的方法?这些都不对我有用。我得到目标路径已经存在错误。
radtek

@KeeganQuinn您认为Karan所说的“升级时”是什么意思吗?我想是这样。但是您的澄清无疑会帮助我。
红豌豆

如果我想更改在的过程中安装的zipline pip install pipeline-live并直接拿起zipline的更改怎么办?
gseattle

从pip 10.0开始,不需要包括--upgrade何时--force-reinstall使用的信息,仅供参考:github.com/pypa/pip/issues/1139
cjerdonek '19

1
@mrgloom using cached正义意味着它使用上次安装时缓存的源文件。要强制重新下载,请使用该--no-cache-dir标志。
lcnittl

180

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

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

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


1
这也适用于脱机安装,但例外答案无效。
orodbhen

4
对于不需要重新安装大量依赖项的软件包,这是一个更好的解决方案。
阿西尔·基西

1
sudo对我而言至关重要。
mrgloom

1
为什么--upgrade在使用时需要--force-reinstall
mrgloom

@FinnÅrupNielsen为什么要升级当前版本?据我了解,我们要重新安装软件包。如果使用<package-name>==<package-version>格式怎么办?
mrgloom

33

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

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

29
--force-reinstall

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

我不得不用

--no-deps --ignore-installed

20
您必须指定--upgrade--force-reinstall,否则它不会有任何效果。
基冈·奎因

6

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

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

5

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.