Wie deinstalliere ich alle von pip installierten Pakete aus meiner aktuell aktivierten virtuellen Umgebung?
Wie entferne ich alle von Pip installierten Pakete?
Heidelbeerfelder
Harshad Kavathiya
Dies funktioniert für alle Mac-, Windows- und Linux-Systeme. So erhalten Sie die Liste aller Pip-Pakete in der Datei „requirements.txt“ (Hinweis: Dadurch wird „requirements.txt“ überschrieben, falls vorhanden, sonst wird die neue erstellt, auch wenn Sie die alte „requirements.txt“ nicht ersetzen möchten, geben Sie einen anderen Dateinamen an in allen folgenden Befehlen an Ort und Stelle requirements.txt).
pip freeze > requirements.txt
Jetzt einzeln entfernen
pip uninstall -r requirements.txt
Wenn wir dann alle auf einmal entfernen wollen
pip uninstall -r requirements.txt -y
Wenn Sie an einem bestehenden Projekt arbeiten, das über eine requirements.txt
Datei und Ihre Umgebung divergiert, einfach ersetzen requirements.txt
aus den obigen Beispielen mit toberemoved.txt
. Nachdem Sie die obigen Schritte ausgeführt haben, können Sie die verwenden requirements.txt
um Ihre jetzt saubere Umgebung zu aktualisieren.
Und für einen einzelnen Befehl, ohne eine Datei zu erstellen (wie von @joeb vorgeschlagen).
pip uninstall -y -r <(pip freeze)
-
Erwähnenswert ist wahrscheinlich, dass Sie das Überschreiben der Datei “requirements.txt” erzwingen, falls sie es nicht wussten. 🙂
– David Gregory
18. Februar 2017 um 0:24 Uhr
-
Wenn man außerdem alle Pakete entfernen möchte, reicht das Anhängen von „-y“ aus. Beispiel:
pip uninstall -r requirements.txt -y
– David Metcalfe
9. April 2017 um 0:13 Uhr
-
Sie können verwenden
pip uninstall -y -r <(pip freeze)
alles auf einmal machen.– joebeeson
8. Juni 2017 um 14:21 Uhr
-
@joeb ja das können wir auch so machen.
– Harshad Kavathiya
9. Juni 2017 um 9:28 Uhr
-
@HarshadKavathiya Sie können eine andere Datei zum Speichern von Pip Freeze verwenden, wie “current.txt”, damit requirements.txt unberührt bleiben kann
– katso
11. Mai 2018 um 20:28 Uhr
-
Ich mag es, aber es funktioniert nicht im Nullfall (
pip freeze
führt zu keiner Ausgabe, wenn keine Pakete installiert sind, und dannpip uninstall
beschwert sich leider).– Eric G
19. August 2018 um 23:53 Uhr
-
Hm, guter Fang. Vielleicht könnte es in eine Bash-Funktion verpackt werden, die prüft, ob die Pip-Freeze-Ausgabe nicht leer ist. Ich sehe keinen guten Weg, dies zu erreichen, während der Befehl ein netter kurzer Einzeiler bleibt.
– Taylor D. Edmiston
20. August 2018 um 17:05 Uhr
-
make verwendet standardmäßig sh, aber die Substitutionssyntax
<(...)
ist ein Bashismus. Sie können also entweder bash -c “…” verwenden oder dies umgehen, indem Sie a ausführenpip freeze | pip uninstall -r /dev/stdin
– Cäsar
8. Oktober 2018 um 23:45 Uhr
-
Funktioniert nicht mit Azure Notebooks:
ERROR: Cannot uninstall 'bitarray'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
– SeaDude
30. April 2020 um 7:03 Uhr
-
@SeaDude Hier ist eine Problemumgehung, die hilfreich sein kann – stackoverflow.com/questions/49915951/cannot-uninstall-chardet. Wenn das nicht funktioniert, wäre dieser Ansatz meine nächste beste Vermutung – github.com/vlachoudis/bCNC/issues/1141. Beachten Sie, dass die genannten Pakete unterschiedlich sind, aber ich glaube, dass das zugrunde liegende Problem ähnlich sein könnte.
– Taylor D. Edmiston
1. Mai 2020 um 15:36 Uhr
Robert Moska
Mit den neusten funktioniert das. Ich denke, es ist der kürzeste und deklarativste Weg, dies zu tun.
virtualenv --clear MYENV
Aber warum nicht einfach die virtuelle Umgebung löschen und neu erstellen?
Unveränderlichkeitsregeln. Außerdem ist es schwer, sich an all die Rohrleitungen und Greppings zu erinnern, die die anderen Lösungen verwenden.
-
Ist das effektiv dasselbe wie Laufen?
wipeenv
? virtualenvwrapper.readthedocs.org/en/latest/…– Taylor D. Edmiston
15. April 2015 um 16:11 Uhr
-
Eigentlich – es scheint (nach dem, was mir gerade begegnet ist) während
wipeenv
while within the environment löst einen Fehler aus und entfernt nichts, wenn es im Kontext von a verwendet wirdpip install -e
Entwicklung bauen, versuchen zu verwendenvirtualenv --clear MYENV
löst keinen Fehler aus und entfernt keines der Pakete, die Sie möglicherweise zuvor in der Umgebung installiert haben. Zumindest ist dies unter OSX der Fall. Sehen bitbucket.org/dhellmann/virtualenvwrapper/issues/211/… für weitere Informationen.– mpacer
4. August 2015 um 6:20 Uhr
-
wipeenv
ist ein Alias, der von virtualenvwrapper bereitgestellt wird, also hat ihn nicht jeder.– Jonathan Hartley
11. Oktober 2017 um 17:29 Uhr
-
Nun, das ist eine Art schmutziger Trick, funktioniert aber wie Magie. Ich würde es vorziehen, wenn jeder pip uninstall -r requirements.txt -y verwendet. Es macht eine große Reinigung.
– Muema
9. März 2018 um 19:25 Uhr
Andere Antworten, die verwenden pip list
oder pip freeze
muss enthalten --local
Andernfalls werden auch Pakete deinstalliert, die in den gemeinsamen Namespaces gefunden werden.
Hier sind also die Ausschnitte, die ich regelmäßig verwende
pip freeze --local | xargs pip uninstall -y
Ref: pip freeze --help
-
Ist das effektiv dasselbe wie Laufen?
wipeenv
? virtualenvwrapper.readthedocs.org/en/latest/…– Taylor D. Edmiston
15. April 2015 um 16:11 Uhr
-
Eigentlich – es scheint (nach dem, was mir gerade begegnet ist) während
wipeenv
while within the environment löst einen Fehler aus und entfernt nichts, wenn es im Kontext von a verwendet wirdpip install -e
Entwicklung bauen, versuchen zu verwendenvirtualenv --clear MYENV
löst keinen Fehler aus und entfernt keines der Pakete, die Sie möglicherweise zuvor in der Umgebung installiert haben. Zumindest ist dies unter OSX der Fall. Sehen bitbucket.org/dhellmann/virtualenvwrapper/issues/211/… für weitere Informationen.– mpacer
4. August 2015 um 6:20 Uhr
-
wipeenv
ist ein Alias, der von virtualenvwrapper bereitgestellt wird, also hat ihn nicht jeder.– Jonathan Hartley
11. Oktober 2017 um 17:29 Uhr
-
Nun, das ist eine Art schmutziger Trick, funktioniert aber wie Magie. Ich würde es vorziehen, wenn jeder pip uninstall -r requirements.txt -y verwendet. Es macht eine große Reinigung.
– Muema
9. März 2018 um 19:25 Uhr
Ich habe es geschafft, indem ich Folgendes getan habe:
- Erstellen Sie die Anforderungsdatei namens
reqs.txt
mit aktuell installierter Paketliste
pip freeze > reqs.txt
- Dann deinstallieren Sie alle Pakete von
reqs.txt
# -y means remove the package without prompting for confirmation
pip uninstall -y -r reqs.txt
Ich mag diese Methode, da Sie immer eine Pip-Anforderungsdatei haben, auf die Sie zurückgreifen können, falls Sie einen Fehler machen. Es ist auch wiederholbar und plattformübergreifend (Windows, Linux, MacOs).
@patelshahrukh Python deinstallieren NICHT Pip-Pakete entfernen. Bitte VERMEIDEN tun, da es beide höchstwahrscheinlich WIRD NICHT FUNKTIONIEREN so wie du es dir vorstellst, Undje nachdem, wie Sie Python erneut installieren, kann Ihren Computer in einem instabilen Zustand belassen mehr Arbeit zu beheben.
– Heidelbeerfelder
23. April 2018 um 18:23 Uhr
Dies kann für Pakete hilfreich sein, die im Entwicklungsmodus oder im bearbeitbaren Modus installiert sind: stackoverflow.com/questions/17346619/…
– Charly Parker
2. Mai 2020 um 16:21 Uhr