Last Updated on 2022-04-08 by Clay
問題描述
今天在我於 Kaggle 中建立的虛擬環境裡安裝 pytorch-lightning 框架時,遇到了以下問題:
Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
出問題的是 PyYAML 這個 Python 的模組,應是 pytorch-lightning 的相關依賴套件。而根據錯誤訊息,這是一個 distutils 所安裝的項目,所以刪除程序無法確認哪些文件屬於它,故只能部分卸載。
解決方法
看了一些網站以及 stackoverflow 上的討論,這是一個許多人都曾碰過的問題。最通常見到的解決方法是,不需要嘗試方法去刪除它,而是在安裝時加上 --ignore-installed
參數去升級套件。
通常的更新程序是先刪除舊的版本、接著再重新安裝新的版本,但現在的問題就卡在我們無法確認哪些文件是因為屬於舊版本套件並需要刪除。
加上這個參數後,我們就能跳過刪除程序,直接覆蓋新版本在舊版本之上。基本上大多數套件都能正常運作,唯一的問題就是可能存在舊版本的檔案成為了系統垃圾。
完整指令應為:
pip3 install --ignore-installed PyYAML