Deinstallieren Sie die Pip-Abhängigkeit mit einem Bindestrich am Anfang ihres Namens

Deinstallieren Sie die Pip-Abhängigkeit mit einem Bindestrich am Anfang ihres Namens

Ich habe versehentlich ein Paket -igalixirmit dem Namen pip3 global installiert. Wenn ich versuche, es zu deinstallieren, pip3 uninstall -igalixirwird es -igalixirals Befehlszeilenoption interpretiert. Ich habe versucht, es in Anführungszeichen zu setzen, was auch nicht funktioniert.

Die Ausgabe von pip3 listund pip3 freezeist wie folgt:

$ pip3 list
Package    Version
---------- -------
-igalixir  1.0.19
click      6.7
pip        19.0.3
proxy.py   0.3
Pygments   2.2.0
requests   2.13.0
rollbar    0.13.18
setuptools 40.8.0
six        1.12.0
stripe     1.51.0
wheel      0.33.1

$ pip3 freeze
Could not parse requirement: -igalixir
click==6.7
proxy.py==0.3
Pygments==2.2.0
requests==2.13.0
rollbar==0.13.18
six==1.12.0
stripe==1.51.0

Ich bin mir nicht einmal sicher, wie ich es überhaupt installiert habe, wenn es ein ungültiger Paketname ist. Gibt es eine Möglichkeit, es sauber von meinem System zu entfernen? Ich möchte nicht, dass irgendwelche zufälligen Dateien auf meinem System herumliegen – daher ist es mir lieber, wenn es ordnungsgemäß deinstalliert wird.

BEARBEITEN

Ich habe versucht, den -igialixirBegriff mit zu trennen --, etwa so: pip3 uninstall -- -igalixir, und obwohl er nicht -igialixarmehr als Befehlszeilenoption interpretiert wird, wird er trotzdem nicht akzeptiert, da es sich um eine ungültige Anforderung handelt.

$ pip3 uninstall -- -igalixir
Invalid requirement: '-igalixir'

Antwort1

Anführungszeichen werden von der Shell interpretiert und entfernt, Pip empfängt sie nicht einmal.

Die Standardmethode zum Umgang mit solchen Fällen in GNU-Dienstprogrammen ist die Verwendung des doppelten Bindestrichs:

sometool -somearg -otherarg -- -these -are -interpreted -as -file -names

Ich vermute, dass Pip diese Konvention ebenfalls verwenden könnte.

Antwort2

Ich bin in eine ähnliche Situation geraten. Was bei mir funktioniert hat, war, den folgenden Befehl auszuführen, um zu sehen, wo sich die Installation befindet:

pip show -- -pkgname

Ich bin dann zu diesem Ordner gegangen und habe einfach den fehlerhaften Ordner entfernt (er war mit einem Bindestrich aufgeführt, aber der Ordnername begann mit einem Tilde-Zeichen, ~pkgname).

Das hat das Problem in meinem Fall gelöst.

verwandte Informationen