
我不小心全域安裝了一個名為-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
引號被 shell 解釋和刪除,pip 甚至不接收它們。
在 GNU 實用程式中處理此類情況的標準方法是使用雙破折號:
sometool -somearg -otherarg -- -these -are -interpreted -as -file -names
我想 pip 也可能使用這個約定。
答案2
我遇到了類似的情況。對我有用的是運行以下命令來查看安裝所在的位置:
pip show -- -pkgname
然後,我轉到該資料夾並簡單地刪除了有問題的資料夾(它用連字號列出,但資料夾名稱以波浪號開頭,~pkgname)。
這解決了我的案例中的問題。