Wie entferne ich alle von Pip installierten Pakete?

Lesezeit: 5 Minuten

Benutzeravatar von blueberryfields
Heidelbeerfelder

Wie deinstalliere ich alle von pip installierten Pakete aus meiner aktuell aktivierten virtuellen Umgebung?

  • @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

Benutzeravatar von Harshad Kavathiya
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 dann pip 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ühren pip 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

Benutzeravatar von Robert Moskal
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 wird pip install -e Entwicklung bauen, versuchen zu verwenden virtualenv --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 wird pip install -e Entwicklung bauen, versuchen zu verwenden virtualenv --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:

  1. Erstellen Sie die Anforderungsdatei namens reqs.txt mit aktuell installierter Paketliste
pip freeze > reqs.txt
  1. 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).

1443490cookie-checkWie entferne ich alle von Pip installierten Pakete?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy