卸載名稱開頭帶有連字符的 pip 依賴項

卸載名稱開頭帶有連字符的 pip 依賴項

我不小心全域安裝了一個名為-igalixirpip3 的套件。當我嘗試卸載它時,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

引號被 shell 解釋和刪除,pip 甚至不接收它們。

在 GNU 實用程式中處理此類情況的標準方法是使用雙破折號:

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

我想 pip 也可能使用這個約定。

答案2

我遇到了類似的情況。對我有用的是運行以下命令來查看安裝所在的位置:

pip show -- -pkgname

然後,我轉到該資料夾並簡單地刪除了有問題的資料夾(它用連字號列出,但資料夾名稱以波浪號開頭,~pkgname)。

這解決了我的案例中的問題。

相關內容