Удалите зависимость pip, указав дефис в начале ее имени.

Удалите зависимость pip, указав дефис в начале ее имени.

Я случайно глобально установил пакет, названный -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).

В моем случае это решило проблему.

Связанный контент