名前の先頭にハイフンがある pip 依存関係をアンインストールします

名前の先頭にハイフンがある pip 依存関係をアンインストールします

誤って pip3 というパッケージをグローバルにインストールしてしまいました-igalixir。アンインストールしようとすると、コマンド ライン オプションとして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))。

私の場合はそれで問題は解決しました。

関連情報