
Accidentalmente instalé globalmente un paquete llamado -igalixir
pip3. Cuando intento desinstalarlo, pip3 uninstall -igalixir
se interpreta -igalixir
como una opción de línea de comando. Intenté rodearlo entre comillas, lo cual tampoco funciona.
La salida de pip3 list
y pip3 freeze
es la siguiente:
$ 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
Ni siquiera estoy seguro de cómo lo instalé en primer lugar si es un nombre de paquete no válido. ¿Hay alguna forma de eliminar esto de forma limpia de mi sistema? No quiero que haya archivos aleatorios en mi sistema, así que prefiero que se desinstalen correctamente.
EDITAR
Intenté separar el -igialixir
término con --
, así: pip3 uninstall -- -igalixir
, y aunque ya no se interpreta -igialixar
como una opción de línea de comando, todavía no lo acepta porque es un requisito no válido.
$ pip3 uninstall -- -igalixir
Invalid requirement: '-igalixir'
Respuesta1
Las cotizaciones son interpretadas y eliminadas por el shell, pip ni siquiera las recibe.
La forma estándar de tratar estos casos en las utilidades GNU es utilizar el doble guión:
sometool -somearg -otherarg -- -these -are -interpreted -as -file -names
Supongo que pip también puede utilizar esta convención.
Respuesta2
Me encontré con una situación similar. Lo que funcionó para mí fue ejecutar el siguiente comando para ver dónde reside la instalación:
pip show -- -pkgname
Luego fui a esa carpeta y simplemente eliminé la carpeta infractora (aparecía con un guión pero el nombre de la carpeta comenzaba con un signo de tilde, ~pkgname).
Eso resolvió el problema en mi caso.