
Eu acidentalmente instalei globalmente um pacote chamado -igalixir
pip3. Quando tento desinstalá-lo, pip3 uninstall -igalixir
ele é interpretado -igalixir
como uma opção de linha de comando. Tentei cercá-lo com aspas, o que também não funciona.
A saída de pip3 list
e 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 -igialixir
termo com --
, assim: pip3 uninstall -- -igalixir
, e embora não seja -igialixar
mais 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.