it-swarm.com.de

So deinstallieren Sie ein mit pip install --user installiertes Paket

Es gibt eine --user-Option für pip, mit der pro Benutzer ein Python-Paket installiert werden kann:

pip install --user [python-package-name]

Ich habe diese Option verwendet, um ein Paket auf einem Server zu installieren, für den ich keinen Root-Zugriff habe. Was ich jetzt brauche, ist das installierte Paket auf dem aktuellen Benutzer zu deinstallieren. Ich habe versucht, diesen Befehl auszuführen:

pip uninstall --user [python-package-name]

Aber ich bekam:

no such option: --user

Wie kann ich ein mit pip install --user installiertes Paket deinstallieren, außer das Paket manuell suchen und löschen zu müssen?

Ich habe diesen Artikel gefunden 

pip kann nicht aus dem Site-Packages-Verzeichnis der Benutzer gelöscht werden

dies beschreibt, dass die Deinstallation von Paketen aus dem Benutzerverzeichnis nicht unterstützt wird. Laut dem Artikel wenn es dann korrekt mit umgesetzt wurde

pip uninstall [package-name]

das installierte Paket wird auch in Benutzerverzeichnissen durchsucht. Für mich bleibt jedoch ein Problem. Was ist, wenn dasselbe Paket sowohl systemweit als auch pro Benutzer installiert wurde?

138
Serjik

Nachdem Sie dies mit Python 3.5 und Pip 7.1.2 unter Linux getestet haben, scheint die Situation die folgende zu sein:

  • pip install --user somepackage wird auf $HOME/.local installiert, und die Deinstallation funktioniert mit pip uninstall somepackage.

  • Dies gilt unabhängig davon, ob somepackage gleichzeitig systemweit installiert ist oder nicht.

  • Wenn das Paket an beiden Orten installiert ist, wird nur das lokale Paket deinstalliert. Um das Paket systemweit mit pip zu deinstallieren, deinstallieren Sie es zunächst lokal und führen Sie dann denselben Deinstallationsbefehl erneut mit den Berechtigungen root aus.

  • Zusätzlich zum vordefinierten Benutzerinstallationsverzeichnis wird pip install --target somedir somepackage das Paket in somedir installieren. Es ist nicht möglich, ein Paket an einem solchen Ort mit pip zu deinstallieren. (Es gibt jedoch eine etwas alte, nicht zusammengeführte Pull-Anforderung auf Github, die pip uninstall --target implementiert.)

  • Da pip nur von einem Ort aus deinstalliert wird, die systemweit und vordefiniert sind, müssen Sie pip uninstall als jeweiligen Benutzer ausführen, um die Deinstallation aus dem lokalen Installationsverzeichnis eines bestimmten Benutzers durchzuführen.

124
Thomas Lotze

beispiel zum Deinstallieren des Pakets 'oauth2client' unter MacOS:

pip uninstall oauth2client
19
Huy - Logarit

Seien Sie jedoch vorsichtig, wenn Sie pip install --user some_pkg in einer virtuellen Umgebung verwenden .

$ path/to/python -m venv ~/my_py_venv
$ source ~/my_py_venv/bin/activate
(my_py_venv) $ pip install --user some_pkg
(my_py_venv) $ pip uninstall some_pkg
WARNING: Skipping some_pkg as it is not installed.
(my_py_venv) $ pip list
# Even `pip list` will not properly list the `some_pkg` in this case

In diesem Fall müssen Sie die aktuelle virtuelle Umgebung deaktivieren und dann die entsprechende ausführbare Datei python/pip verwenden, um oder aufzulisten Deinstallieren Sie die Benutzer-Site-Pakete:

(my_py_venv) $ deactivate
$ path/to/python -m pip list
$ path/to/python -m pip uninstall some_pkg

Beachten Sie, dass dieses Problem wurde vor einigen Jahren gemeldet . Und es scheint, dass aktuelle Schlussfolgerung ist: --user ist nicht gültig innerhalb des pip einer virtuellen Umgebung, da ein Benutzerstandort für eine virtuelle Umgebung nicht wirklich sinnvoll ist.

3
YaOzI

Wie @ thomas-lotze erwähnt hat, macht das Pip-Tooling dies derzeit nicht, da es keine entsprechende Option --user gibt. Was ich aber finde, ist, dass ich in ~/.local/bin einchecken und nach dem spezifischen pip #. # Suchen kann, der für mich der Option --user entspricht.

In meinem Fall:

[email protected]: ~/.l/bin$ pwd
/home/antho/.local/bin
[email protected]: ~/.l/bin$ ls pip*
pip  pip2  pip2.7  pip3  pip3.5

Und dann einfach mit der jeweiligen Pip-Version deinstallieren.

2
AnthonyC

Die Antwort ist Noch nicht möglich . Sie müssen es manuell entfernen.

2
sorin

Sie können alle Pakete gleichzeitig deinstallieren.

1. First, install pip-purge.

  pip install pip-purge

2. Then, Run

    pip-purge

Stellen Sie sicher, dass Sie nur in einer virtuellen Umgebung ausgeführt werden 

0
ParthS007

Ich verwende Anaconda Version 4.3.22 und eine Python3.6.1-Umgebung und hatte dieses Problem. Hier ist die Geschichte und der Fix:

pip uninstall opencv-python # -- the original step. failed.

ImportError: DLL load failed: The specified module could not be found.

Ich habe dies in meiner python3.6-Umgebung gemacht und diesen Fehler erhalten.

python -m pip install opencv-python # same package as above.
conda install -c conda-forge opencv # separate install parallel to opencv
pip-install opencv-contrib-python # suggested by another user here. doesn't resolve it.

Als Nächstes versuchte ich, python3.6 herunterzuladen und die python3.dll im Ordner und in verschiedenen Ordnern abzulegen. Nichts hat sich verändert. 

endlich wurde dies behoben: 

pip uninstall opencv-python

(Die andere Conda-Forge-Version ist noch installiert.) Es blieb nur die Conda-Version übrig, und das funktioniert in 3.6. 

>>>import cv2
>>>

arbeiten!

0
Marc Maxmeister