
Ich habe versehentlich ein Paket -igalixir
mit dem Namen pip3 global installiert. Wenn ich versuche, es zu deinstallieren, pip3 uninstall -igalixir
wird es -igalixir
als Befehlszeilenoption interpretiert. Ich habe versucht, es in Anführungszeichen zu setzen, was auch nicht funktioniert.
Die Ausgabe von pip3 list
und pip3 freeze
ist 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 -igialixir
Begriff mit zu trennen --
, etwa so: pip3 uninstall -- -igalixir
, und obwohl er nicht -igialixar
mehr 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.