2015-07-06 6 views
5

Ich habe das Paket in ein bestimmtes lokales Verzeichnis mit pip install -t <dir> installiert.pip: Deinstallieren des Pakets aus einem bestimmten Verzeichnis

Jetzt möchte ich es deinstallieren, aber ich kann keinen Weg finden, von dieses spezifische Verzeichnis zu deinstallieren. Für uninstall gibt es keine gültige Option -t | - Ziel, die für install Befehl existiert.

+0

Wenn Sie 'pip list' ausführen, können Sie das Paket sehen? – doru

+0

Nein, 'pip list' zeigt mir die globale Paketliste –

+0

Ich denke, Sie könnten diesen Ordner einfach löschen, wenn er nur dieses Paket enthält oder das Paket darin löschen, wenn weitere Pakete im Ordner vorhanden sind. – doru

Antwort

8

Entfernen Sie sie manuell. pip nicht versteckt Verzeichnisse der installierten Pakete und scannt Verzeichnisse wie /usr/local/lib/python2.7/dist-packages direkt um festzustellen, was installiert ist.

Also, wenn Sie etwas mit -t installiert haben, gehen Sie einfach in das Verzeichnis, das Sie angegeben haben und löschen Sie alle Spuren, einschließlich aller Metadaten-Dateien. Zum Beispiel

$ mkdir localpips 
$ pip install -t localpips docopt 
Downloading/unpacking docopt 
    Downloading docopt-0.6.2.tar.gz 
    Running setup.py (path:/tmp/pip_build_garyw/docopt/setup.py) egg_info for package docopt 

Installing collected packages: docopt 
    Running setup.py install for docopt 

Successfully installed docopt 
Cleaning up... 
$ cd localpips 
$ ls -l 
total 48 
drwxr-xr-x 2 garyw garyw 4096 Jul 6 17:27 docopt-0.6.2.egg-info 
-rw-r--r-- 1 garyw garyw 19946 Jul 6 17:27 docopt.py 
-rw-r--r-- 1 garyw garyw 23326 Jul 6 17:27 docopt.pyc 
$ 

es zu deinstallieren, gehen Sie einfach in localpips und löschen Sie die Dateien und Verzeichnisse, die erstellt wurden.

Ich weiß, es ist nicht so elegant, und manchmal haben Sie keine Ahnung, was mit etwas zu tun haben könnte, wenn Sie die Installation nicht sorgfältig beobachten, aber so ist es.

+0

Sie haben Recht, dass es nicht versteckt ist. Mein Problem ist über Paketabhängigkeiten. Ich habe mehrere Pakete installiert. Jeder hat auch seine Abhängigkeiten installiert. Jetzt muss ich einen von ihnen mit seinen Abhängigkeiten entfernen (aber nur für den Fall, dass sie nicht von anderen Paketen verwendet werden). Es ist keine triviale Aufgabe. Ich war mir sicher, dass es ein Gegenteil von 'pip install -t <...>' –

+1

Leider hat Pip keinen robusten Abhängigkeits-Tracker, so entfernt ein Paket (auch im Systemverzeichnis) seine Abhängigkeiten nicht. Es gibt eine Standardmethode, mit der Pakete ihre Anforderungen deklarieren, aber da zu keiner Zeit eine Datenbank über das, was benötigt wird, gespeichert wird, gibt es keine Option "mit Abhängigkeiten", unabhängig davon, ob Sie '-t' verwenden oder nicht Paket auf github namens pip-autoremove, das die Analyse und das Entfernen durchführt, aber benutzerdefinierte Verzeichnisse nicht unterstützt :-( –

Verwandte Themen