webentwicklung-frage-antwort-db.com.de

Wie entferne ich Pakete, die mit Pythons easy_install installiert wurden?

Pythons easy_install macht die Installation neuer Pakete äußerst bequem. Soweit ich das beurteilen kann, werden jedoch nicht die anderen allgemeinen Funktionen eines Abhängigkeitsmanagers implementiert - Auflisten und Entfernen installierter Pakete.

Was ist der beste Weg, um herauszufinden, was installiert ist, und was ist der bevorzugte Weg, um installierte Pakete zu entfernen? Gibt es Dateien, die aktualisiert werden müssen, wenn ich Pakete manuell entferne (z. B. von rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.Egg oder ähnlichem)?

683
ire_and_curses

pip , eine Alternative zu setuptools/easy_install, bietet den Befehl "uninstall".

Verlegen Sie die Rohrleitung gemäß Installationsanleitung :

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

Dann können Sie pip uninstall verwenden, um Pakete zu entfernen, die mit easy_install installiert wurden.

611
lunaryorn

Um einen .Egg zu deinstallieren, müssen Sie das Ei rm -rf (möglicherweise ein Verzeichnis) und die entsprechende Zeile aus site-packages/easy-install.pth entfernen.

186
joeforker

Zuerst müssen Sie diesen Befehl ausführen:

$ easy_install -m [PACKAGE]

Es werden alle Abhängigkeiten des Pakets entfernt.

Dann entferne die Ei-Datei dieses Pakets:

$ Sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].Egg
157
PythonDev

Alle Informationen sind in den anderen Antworten enthalten, aber keine fasst beide Ihre Anforderungen zusammen oder scheint die Dinge unnötig komplex zu machen:

  • Für Ihre Entfernungsbedürfnisse verwenden Sie:

    pip uninstall <package>
    

    (Installation mit easy_install pip)

  • Verwenden Sie für die Liste der installierten Pakete entweder:

    pip freeze
    

    Oder:

    yolk -l
    

    welches mehr Paketdetails ausgeben kann.

    (Installation über easy_install yolk oder pip install yolk)

55
Rabarberski

Es gibt mehrere Quellen im Internet, die einen Hack vorschlagen, indem Sie das Paket mit der Option -m neu installieren und dann einfach die .Egg-Datei in lib/und die Binärdateien in bin/entfernen. Eine Diskussion über dieses Setuptools-Problem finden Sie auch auf dem python Bug-Tracker als Setuptools Ausgabe 21 .

Bearbeiten: Der Link zum python Bugtracker wurde hinzugefügt.

28
c089

Wenn Ihnen das Problem ernst genug ist, können Sie virtualenv in Betracht ziehen. Hiermit können Sie eine Umgebung erstellen, die python Bibliotheken kapselt. Sie installieren die Pakete dort und nicht im globalen Verzeichnis site-packages. Alle Skripte, die Sie in dieser Umgebung ausführen, haben Zugriff auf diese Pakete (und optional auch auf Ihre globalen). Ich verwende dies häufig bei der Bewertung von Paketen, bei denen ich nicht sicher bin, ob ich sie global installieren möchte/muss. Wenn Sie entscheiden, dass Sie das Paket nicht benötigen, ist es einfach genug, diese virtuelle Umgebung in die Luft zu jagen. Es ist ziemlich einfach zu bedienen. Erstelle eine neue Umgebung:

$>virtualenv /path/to/your/new/ENV

virtual_envt installiert setuptools für Sie in der neuen Umgebung, so dass Sie Folgendes tun können:

$>ENV/bin/easy_install

Sie können sogar Ihre eigenen Boostrap-Skripte erstellen, die Ihre neue Umgebung einrichten. Mit einem Befehl können Sie also eine neue virtuelle Umgebung erstellen, beispielsweise mit python 2.6, psycopg2 und Django, die standardmäßig installiert sind (Sie können eine umgebungsspezifische Version von _ installieren).python wenn Sie möchten).

25
mazelife

Offizielle (?) Anweisungen: http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages

Wenn Sie ein Paket durch eine andere Version ersetzt haben, können Sie die nicht benötigten Pakete einfach löschen, indem Sie die Datei oder das Verzeichnis PackageName-versioninfo.Egg (im Installationsverzeichnis) löschen.

Wenn Sie die aktuell installierte Version eines Pakets (oder alle Versionen eines Pakets) löschen möchten, sollten Sie zuerst Folgendes ausführen:

easy_install -mxN PackageName

Dadurch wird sichergestellt, dass Python nicht weiter nach einem Paket sucht, das Sie entfernen möchten. Nachdem Sie dies getan haben, können Sie die .Egg-Dateien oder -Verzeichnisse zusammen mit allen Skripten, die Sie entfernen möchten, sicher löschen.

18
Mark Rajcok

versuchen

$ easy_install -m [PACKAGE]

dann

$ rm -rf .../python2.X/site-packages/[PACKAGE].Egg
15
Jim Geovedi

Um installierte Python Pakete aufzulisten, können Sie yolk -l verwenden. Sie müssen jedoch zuerst easy_install yolk verwenden.

7
Enis Afgan

Kam über diese Frage, als versucht wurde, die vielen zufälligen Python -Pakete zu deinstallieren, die im Laufe der Zeit installiert wurden.

Mit den Informationen aus diesem Thread habe ich mir Folgendes ausgedacht:

cat package_list | xargs -n1 Sudo pip uninstall -y

Der package_list wird aus einem pip freeze in einer virtuellen Umgebung entfernt (awk).

So entfernen Sie fast alle Python -Pakete:

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y
6
m0hit

Bei mir löschte nur diese Datei: easy-install.pth hat funktioniert, rest pip install Django == 1.3.7

3
Snehal Parmar

Ich bin auf meinem MacOS X Leopard 10.6.blah auf dasselbe Problem gestoßen.

Die Lösung besteht darin, sicherzustellen, dass Sie MacPorts Python anrufen:

Sudo port install python26
Sudo port install python_select
Sudo python_select python26
Sudo port install py26-mysql

Hoffe das hilft.

3
Cmag

Das hat bei mir funktioniert. Es ist ähnlich zu vorherigen Antworten, aber der Pfad zu den Paketen ist anders.

  1. Sudo easy_install -m
  2. Sudo rm -rf /Library/Python/2.7/site-packages/.Egg

Plattform: MacOS High Sierra Version 10.13.3

1
Red Rooster