
Я случайно глобально установил пакет, названный -igalixir
с помощью pip3. Когда я пытаюсь удалить его с помощью, pip3 uninstall -igalixir
он интерпретируется -igalixir
как параметр командной строки. Я пробовал заключать его в кавычки, но это тоже не работает.
Вывод pip3 list
и pip3 freeze
выглядит следующим образом:
$ 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
Я даже не уверен, как я его установил изначально, если это недопустимое имя пакета. Есть ли способ полностью удалить его из моей системы? Я не хочу, чтобы какие-то случайные файлы висели в моей системе, поэтому я предпочитаю, чтобы он был правильно удален.
РЕДАКТИРОВАТЬ
Я попытался разделить -igialixir
термин с помощью --
, например, так: pip3 uninstall -- -igalixir
, и хотя он больше не интерпретируется -igialixar
как параметр командной строки, он все равно не принимает его, поскольку это недопустимое требование.
$ pip3 uninstall -- -igalixir
Invalid requirement: '-igalixir'
решение1
Котировки интерпретируются и удаляются оболочкой, pip их даже не получает.
Стандартный способ решения таких случаев в утилитах GNU — использование двойного тире:
sometool -somearg -otherarg -- -these -are -interpreted -as -file -names
Думаю, pip тоже может использовать эту конвенцию.
решение2
Я столкнулся с похожей ситуацией. Мне помогло выполнение следующей команды, чтобы увидеть, где находится установка:
pip show -- -pkgname
Затем я перешел в эту папку и просто удалил проблемную папку (она была указана с дефисом, но имя папки начиналось с тильды, ~pkgname).
В моем случае это решило проблему.