Desinstale a dependência do pip com um hífen no início do nome

Desinstale a dependência do pip com um hífen no início do nome

Eu acidentalmente instalei globalmente um pacote chamado -igalixirpip3. Quando tento desinstalá-lo, pip3 uninstall -igalixirele é interpretado -igalixircomo uma opção de linha de comando. Tentei cercá-lo com aspas, o que também não funciona.

A saída de pip3 liste pip3 freezeé a seguinte:

$ 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

Eu nem tenho certeza de como o instalei se for um nome de pacote inválido. Existe alguma maneira de limpar isso do meu sistema. Não quero nenhum arquivo aleatório no meu sistema - então prefiro que ele seja desinstalado corretamente.

EDITAR

Tentei separar o -igialixirtermo com --, assim: pip3 uninstall -- -igalixir, e embora não seja -igialixarmais interpretado como uma opção de linha de comando, ainda não o aceita porque é um requisito inválido.

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

Responder1

As cotações são interpretadas e removidas pelo shell, o pip nem as recebe.

A maneira padrão de lidar com tais casos em utilitários GNU é usar o traço duplo:

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

Acho que o pip também pode usar essa convenção.

Responder2

Eu me deparei com uma situação semelhante. O que funcionou para mim foi executar o seguinte comando para ver onde reside a instalação:

pip show -- -pkgname

Em seguida, fui para essa pasta e simplesmente removi a pasta incorreta (ela estava listada com um hífen, mas o nome da pasta começava com um sinal de til, ~pkgname).

Isso resolveu o problema no meu caso.

informação relacionada