Ich bin auf Situationen gestoßen, in denen eine aktuelle Version eines Pakets nicht zu funktionieren scheint und eine Neuinstallation erfordert. Aber pip install -U
wird kein Paket anfassen, das bereits aktuell ist. Ich sehe, wie man eine Neuinstallation erzwingt, indem man zuerst deinstalliert (mit pip uninstall
) und dann installieren, aber gibt es eine Möglichkeit, in einem einzigen Schritt einfach ein “Update” auf eine nominell aktuelle Version zu erzwingen?
Kann ich Pip dazu zwingen, die aktuelle Version neu zu installieren?
KGo
pip install --upgrade --force-reinstall <package>
Installieren Sie beim Upgrade alle Pakete neu, auch wenn sie bereits auf dem neuesten Stand sind.
pip install -I <package>
pip install --ignore-installed <package>
Ignorieren Sie die installierten Pakete (stattdessen Neuinstallation).
-
Gibt es eine Möglichkeit, ein Überschreiben zu erzwingen, wenn das Flag –target= verwendet wird? nichts davon hat bei mir funktioniert. Ich erhalte den Fehler, dass der Zielpfad bereits vorhanden ist.
– radtek
5. August 14 um 20:09 Uhr
-
@mrgloom Die
using cached
bedeutet nur, dass Quelldateien verwendet werden, die bei der letzten Installation zwischengespeichert wurden. Um einen erneuten Download zu erzwingen, verwenden Sie die--no-cache-dir
Flagge.– lnittl
25. Juli 19 um 7:03 Uhr
-
pip install -U
, kurz. (und das--force-reinstall
Option ist selten erforderlich)– smci
15. Juni 20 um 21:41 Uhr
-
Beachten Sie, dass dieser Befehl auch alle Abhängigkeiten neu installiert. Hinzufügen
--no-deps
um dies zu vermeiden, wie in Finns Antwort unten vorgeschlagen.– Skippy le Grand Gourou
11. Januar 21 um 13:03 Uhr
-
Dies funktioniert nicht, um Pip selbst zu aktualisieren
– Hektor
28. Februar 21 um 10:31 Uhr
Finn Arup Nielsen
Vielleicht möchten Sie alle drei Optionen haben: --upgrade
und --force-reinstall
sorgt für eine Neuinstallation, während --no-deps
vermeidet die Neuinstallation von Abhängigkeiten.
$ sudo pip install --upgrade --no-deps --force-reinstall <packagename>
Andernfalls könnten Sie auf das Problem stoßen, dass pip anfängt, Numpy oder andere große Pakete neu zu kompilieren.
-
Dies funktioniert auch für Offline-Installationen, während die ausgenommene Antwort dies nicht tut.
– orodbhen
1. Juni 18 um 14:24 Uhr
-
Dies ist eine bessere Lösung für Pakete mit einer großen Anzahl von Abhängigkeiten, die nicht neu installiert werden müssen.
– Assil Ksiksi
15. November 18 um 15:43 Uhr
-
sudo
war in meinem Fall ausschlaggebend.– Mrgloom
19. August 19 um 12:12 Uhr
-
Warum wir brauchen
--upgrade
wenn wir verwenden--force-reinstall
?– Mrgloom
19. August 19 um 12:13 Uhr
-
macOS: Sie sollten sudo nicht mit pip auf einem Mac ausführen. Als Benutzer mit Administratorrechten ausführen, jedoch ohne sudo . Unter Linux (Ubuntu): sinnvollerweise mit ausführen
sudo
für alle Benutzer installieren. Führen Sie sudo nicht mit aus--user
da dies Pakete unter installieren wirdroot
nur Benutzer.– wesinat0r
21. Juli 2020 um 12:46 Uhr
Wenn Sie Pakete, die in einer requirements.txt-Datei angegeben sind, ohne Upgrade neu installieren möchten, installieren Sie einfach die spezifischen Versionen, die in der requirements.txt-Datei angegeben sind:
pip install -r requirements.txt --ignore-installed
--force-reinstall
scheint keine Neuinstallation mit python2.7 mit pip-1.5 zu erzwingen
Ich musste verwenden
--no-deps --ignore-installed
mrgloom
sudo pip3 install --upgrade --force-reinstall --no-deps --no-cache-dir <package-name>==<package-version>
Einige relevante Antworten:
Unterschied zwischen Pip-Installationsoptionen „ignore-installed“ und „force-reinstall“
Jörg Kribb
In dem Fall müssen Sie die Neuinstallation erzwingen Pip selbst können Sie tun:
python -m pip install --upgrade --force-reinstall pip
Daniel
Wenn Sie eine Textdatei mit vielen Paketen haben, müssen Sie die hinzufügen -R Flagge
pip install --upgrade --no-deps --force-reinstall -r requirements.txt
.
Für diejenigen, die Pip it selbst neu installieren möchten (wenn es aus irgendeinem Grund nicht mehr funktioniert 😉 ), finden Sie die Antwort in diesen SO-Fragen und Antworten
– nsof
16. November 19 um 17:18 Uhr