HOWTO · Python
在 macOS 上解除安裝 Python
了解如何針對每種安裝方式在 macOS 上解除安裝 Python:刪除 Homebrew 或 pyenv 版本、徹底刪除 python.org 安裝,並清理它留下的檔案。
本頁內容
在 macOS 上解除安裝 Python 的方法取決於它是如何安裝的,因此第一步始終是弄清您擁有哪種安裝。本文涵蓋三種常見情況 — Homebrew、python.org 安裝程式和 pyenv — 說明為什麼 macOS 隨附的 Python 必須保留不動,並以值得清理的殘留檔案作結。
開始之前,在終端機中執行 which -a python3。它印出的路徑會告訴您哪些部分適用於您:/opt/homebrew 或 /usr/local/Cellar 路徑屬於 Homebrew,/Library/Frameworks/Python.framework 屬於 python.org 安裝程式,~/.pyenv 下的路徑屬於 pyenv。
了解 macOS 上的 Python
一台 Mac 可以同時容納多個 Python 安裝,並且它們不會相互干擾。Apple 隨 macOS 附帶一個供其自身開發工具使用的 python3 指令,而您透過 Homebrew、python.org 安裝程式或 pyenv 自行安裝的一切都與它分開並存。
正因為如此,「解除安裝 Python」幾乎總是指刪除您自行安裝的一個副本,而不是 Python 整體。刪除其他工具所依賴的副本可能會破壞它們,因此在刪除任何內容之前,請使用 which -a python3 的路徑確定您真正想要刪除的安裝。
解除安裝以 Homebrew 安裝的 Python
如果您以 Homebrew 安裝了 Python,請讓 Homebrew 來刪除它,這樣公式的檔案和連結才能一致地清理。首先,列出 Homebrew 已安裝的 Python 公式:
brew list | grep python
透過指定帶版本號的公式,解除安裝您不再需要的版本:
brew uninstall python@3.12
將 3.12 取代為您自己清單中的版本。Homebrew 會拒絕解除安裝其他已安裝公式所依賴的公式;如果發生這種情況,要嘛先解除安裝那些依賴者,要嘛當您確定沒有任何東西需要它時,使用 --ignore-dependencies 重複該指令。
之後,驗證刪除結果:該公式不再出現在 brew list | grep python 中,並且 which -a python3 不再印出 Homebrew 路徑。如果 python3 --version 仍然回應,那是您剩餘的安裝之一 — 最常見的是下面描述的 macOS 那個。
解除安裝從 python.org 安裝的 Python
python.org 安裝程式沒有自己的解除安裝程式。正如 Python 文件所述,安裝程式在 Mac 上放置三樣東西 — /Applications 中的 Python 3.x 資料夾、/Library/Frameworks/Python.framework 中的框架,以及 /usr/local/bin 中指向可執行檔的符號連結 — 要解除安裝它,您需要刪除這三樣東西。
一次刪除一個版本。首先,列出框架中存在的版本:
ls /Library/Frameworks/Python.framework/Versions/
刪除您要移除的版本(此處為 3.12)及其 Applications 資料夾:
sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.12
sudo rm -rf "/Applications/Python 3.12"
然後只刪除指向您已刪除版本的符號連結。先將它們列出:
ls -l /usr/local/bin | grep "Python.framework/Versions/3.12"
刪除該指令印出的每個連結 — 例如 sudo rm /usr/local/bin/python3.12 — 並保留指向其他版本或 Homebrew 的連結不變。如果您刪除了框架中的最後一個版本,則可以刪除 /Library/Frameworks/Python.framework 本身。安裝程式還會在 ~/.zprofile 或 ~/.bash_profile 中將框架的 bin 目錄新增至您 shell 的 PATH 中;也請刪除那一行。
解除安裝透過 pyenv 安裝的 Python
pyenv 將它安裝的每個版本都保存在 ~/.pyenv/versions 下,因此刪除一個版本永遠不會影響您的其他 Python。列出已安裝的版本:
pyenv versions
解除安裝您不再需要的版本:
pyenv uninstall 3.12.4
pyenv 會要求確認,然後刪除該版本的目錄。再次執行 pyenv versions 以確認該版本已消失;如果它是您的全域版本,請用 pyenv global 設定一個新的,否則您的 shell 將回退到另一個安裝。
macOS 隨附的系統 Python
macOS 本身在 /usr/bin/python3 中提供一個 python3 指令,供 Xcode Command Line Tools 和其他 Apple 軟體使用。Python 文件對這個副本有明確說明:它由 Apple 控制,並被 Apple 提供和第三方軟體使用,您絕不應該修改或試圖刪除它 — 它還位於密封的系統卷上,因此無法以正常方式刪除。
因此,本節沒有任何需要解除安裝的內容。如果在刪除您自己的安裝後 python3 --version 仍報告一個版本,請用 which python3 檢查路徑:當它印出 /usr/bin/python3 時,那個剩餘的副本就是系統的,將其保留在原地是正確的最終狀態。
清理殘留檔案
安裝程式和套件管理器可能會留下少量殘留。值得刪除的是您所解除安裝版本的每使用者函式庫目錄和 pip 下載快取:
rm -rf ~/Library/Python/3.12
rm -rf ~/Library/Caches/pip
將版本號調整為您刪除的版本,並且只刪除屬於該版本的目錄 — 另一個具有不同版本號的安裝會保留其自己的目錄且不受影響。用已刪除的 Python 建立的虛擬環境將不再執行;也請刪除那些專案資料夾,或者用剩餘的 Python 重新建立它們。
結論
在 macOS 上解除安裝 Python 是一項按安裝進行的工作:Homebrew 版本以 brew uninstall 刪除,python.org 安裝透過刪除框架版本、Applications 資料夾及其 /usr/local/bin 符號連結來刪除,pyenv 版本以 pyenv uninstall 刪除。macOS 系統 Python 永遠不是目標 — 以 which -a python3 確定每個副本,只刪除您想要刪除的那個,並只清理它的殘留。
FAQ
-
如何檢查 macOS 上安裝了哪些 Python 版本?
執行which -a python3以檢視 PATH 中的每個python3,並以brew list | grep python和pyenv versions分別檢查每個管理器。 -
解除安裝系統版本的 Python 安全嗎?
不安全 — 而且也沒有必要。/usr/bin/python3副本屬於 macOS 及其開發工具;Python 文件說它絕不應該被修改或刪除。 -
解除安裝後如何重新安裝 Python?
以與之前相同的方式安裝它:Homebrew 以brew install python、python.org 的安裝程式,或者 pyenv 以pyenv install後跟版本號。 -
如果解除安裝指令報告錯誤,我應該怎麼做?
閱讀是哪個程式印出的它。當另一個公式依賴於正在刪除的 Python 時,Homebrew 會拒絕;python.org 檔案的權限錯誤意味著跳過了sudo步驟;找不到版本名稱意味著它是由另一個管理器安裝的。 -
我可以同時安裝多個版本的 Python 嗎?
可以。來自 Homebrew、python.org 和 pyenv 的安裝可以共存,而 pyenv 的存在正是為了在多個版本之間切換。