在 macOS 下升級 Python 幾種常見的方法

在 macOS 下升級 Python 有幾種常見的方法,具體取決于你最初是如何安裝 Python 的。了解你的安裝方式是關鍵。

首先,你需要知道你當前 Python 版本以及它的安裝路徑。

  1. 檢查 Python 版本:
python --version # 可能指向 Python 2.x
python3 --version # 通常指向 Python 3.x
  1. 檢查 Python 路徑:
which python
which python3

根據你 which 命令的輸出,我們可以推斷出安裝方式。常見的安裝方式有:

  • macOS 系統自帶 Python: 通常在 /usr/bin/python不建議直接修改或升級系統自帶的 Python,因為它可能被 macOS 的內部工具所依賴,直接操作可能導致系統不穩定。
  • Homebrew 安裝: 通常在 /usr/local/bin/python3/opt/homebrew/bin/python3 (M1/M2 Mac)。這是 Mac 用戶最推薦和最方便的管理 Python 的方式。
  • pyenv 安裝: 通常在 ~/.pyenv/shims/python。pyenv 是一個強大的 Python 版本管理工具。
  • Anaconda/Miniconda 安裝: 通常在 ~/anaconda3/bin/python~/miniconda3/bin/python。Anaconda 是一個全面的數據科學平臺。
  • 直接從 Python 官網下載安裝包 (pkg): 通常安裝到 /Library/Frameworks/Python.framework

下面針對不同的安裝方式講解如何升級:


最推薦的方式:使用 Homebrew (如果還沒有安裝,強烈建議安裝)

Homebrew 是 macOS 上最流行的包管理器,也是管理 Python 版本的最佳方式之一。

1. 安裝 Homebrew (如果尚未安裝):
打開終端并運行:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

按照屏幕上的指示完成安裝。

2. 升級 Homebrew 本身:

brew update

3. 升級 Python (如果已通過 Homebrew 安裝):
如果你的 Python 3 是通過 Homebrew 安裝的,只需運行:

brew upgrade python

這會把 Homebrew 版的 Python 升級到最新穩定版本。

4. 如果你尚未通過 Homebrew 安裝 Python 3,或者需要安裝特定版本:

brew install python # 這會安裝最新穩定版 Python 3

5. 確保你的 PATH 環境變量正確設置:
Homebrew 會自動將 /usr/local/bin (或 M1/M2 Mac 上的 /opt/homebrew/bin) 添加到你的 PATH 中,確保 Homebrew 安裝的 Python 優先于系統自帶的。在你的 ~/.zshrc (macOS Catalina及更高版本默認) 或 ~/.bash_profile (舊版本) 中確認有類似以下的行:

export PATH="/usr/local/opt/python/libexec/bin:$PATH" # 對于 Intel Mac
export PATH="/opt/homebrew/opt/python/libexec/bin:$PATH" # 對于 M1/M2 Mac

或者更通用的,確保 Homebrew 的 bin 目錄在 PATH 前面:

export PATH="/opt/homebrew/bin:$PATH" # For M1/M2 Mac
export PATH="/usr/local/bin:$PATH" # For Intel Mac

更新后,運行 source ~/.zshrcsource ~/.bash_profile 使其生效。

6. 驗證升級:

python3 --version
which python3

現在 python3 應該指向 Homebrew 安裝的最新版本。


使用 pyenv (推薦用于管理多個 Python 版本)

如果你需要在同一臺機器上管理多個 Python 版本(例如,項目 A 需要 Python 3.8,項目 B 需要 Python 3.10),pyenv 是一個絕佳的選擇。

1. 安裝 pyenv (如果尚未安裝):

brew install pyenv

然后,你需要將 pyenv 初始化添加到你的 shell 配置文件。編輯你的 ~/.zshrc (或 ~/.bash_profile),添加以下行:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

保存文件并運行 source ~/.zshrc

2. 列出可用的 Python 版本:

pyenv install --list

3. 安裝新的 Python 版本 (即升級):
選擇你想要安裝的最新版本,例如 Python 3.11.x:

pyenv install 3.11.x # 將 x 替換為具體的最新補丁版本,如 3.11.4

4. 設置全局或局部 Python 版本:

  • 全局設置 (對所有 shell 會話生效):
pyenv global 3.11.x
  • 局部設置 (僅對當前目錄及其子目錄生效):
    進入你的項目目錄,然后運行:
pyenv local 3.11.x

5. 驗證升級:

python --version
python3 --version
which python
which python3

pyenv 會通過修改 PATH 來“墊片” (shim) 你選擇的 Python 版本。


使用 Anaconda/Miniconda

如果你使用 Anaconda 或 Miniconda 管理 Python 環境,升級方式如下:

1. 更新 conda 本身:

conda update conda

2. 升級基礎環境中的 Python (不推薦,最好創建新環境):
如果你想直接升級 base 環境中的 Python,可以嘗試:

conda update python

但更推薦的做法是創建新的環境來管理不同的 Python 版本。

3. 創建一個新的環境并指定 Python 版本:

conda create -n my_new_env python=3.11
conda activate my_new_env
python --version

這樣你就可以在不同的環境中切換,每個環境有自己獨立的 Python 版本和庫。


從 Python 官網安裝包 (pkg) 升級

如果你最初是從 Python 官網下載的 .pkg 安裝包,你可以:

  1. 訪問 Python 官網: www.python.org/downloads/macos/
  2. 下載最新版本的 macOS 安裝程序。
  3. 運行下載的 .pkg 文件。 它會引導你完成安裝,并通常會安裝在 /Library/Frameworks/Python.framework 下的一個新版本目錄中,并更新你的系統 PATH,使其指向最新的安裝。

注意: 這種方法可能會安裝多個 Python 版本在你的系統上,并且可能需要手動管理 PATH,不如 Homebrew 或 pyenv 靈活。


總結和最佳實踐:

  1. 永遠不要直接修改 macOS 系統自帶的 Python (/usr/bin/python)。
  2. 對于大多數 Mac 用戶,使用 Homebrew 是最簡單、最推薦的方式來安裝和升級 Python 3。
  3. 如果你需要管理多個 Python 版本用于不同的項目,使用 pyenv 是理想的選擇。
  4. 如果你進行數據科學或機器學習工作,并且依賴大量的科學計算庫,Anaconda/Miniconda 是一個強大的解決方案。
  5. 在升級 Python 后,記得重新安裝或更新你的項目依賴 (pip install -r requirements.txt),因為 Python 版本的變化可能會影響庫的兼容性。
  6. 始終在一個新的終端會話或使用 source 命令來確保 PATH 環境變量的更改生效,然后再檢查 Python 版本。

選擇最適合你工作流程的方法。如果你是新手,Homebrew 是一個很好的開始。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/95557.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/95557.shtml
英文地址,請注明出處:http://en.pswp.cn/web/95557.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 入門到精通,真的不用背命令!零基礎小白靠「場景化學習法」,3 個月拿下運維 offer,第二十五天

三、Shell腳本編程 Shell腳本語言的運算 算數運算 shell支持算術運算,但只支持整數,不支持小數 Bash中的算術運算 -- 加法運算 -- - 減法運算 -- * 乘法運算 -- / 除法運算 -- % 取模,即取余數 -- ** 乘方 ? #乘法符號在有些場景需要轉…

SpringAI系列---【多租戶記憶和淘汰策略】

1.多租戶工作原理 2.引入jdbc的pom spring官網鏈接:https://docs.spring.io/spring-ai/reference/api/chat-memory.html,推薦使用官網的jdbc。 阿里巴巴ai鏈接:https://github.com/alibaba/spring-ai-alibaba/tree/main/community/memories j…

Linux gzip 命令詳解:從基礎到高級用法

Linux gzip 命令詳解:從基礎到高級用法 在 Linux 系統中,文件壓縮與解壓縮是日常運維和文件管理的常見操作。gzip(GNU Zip)作為一款經典的壓縮工具,憑借其高效的壓縮算法和簡潔的使用方式,成為 Linux 用戶處…

Redis有什么優點和缺點?

優點:極致性能: 基于內存操作和高效的單線程 I/O 模型,讀寫速度極快。數據結構豐富: 支持多種數據結構,如 String、Hash、List、Set、ZSet、Stream、Geo 等,編程模型靈活。持久化與高可用: 提供…

NestJS 3 分鐘搭好 MySQL + MongoDB,CRUD 復制粘貼直接運行

基于上一篇內容《為什么現代 Node 后端都選 NestJS TypeScript?這組合真香了》,這篇文章繼續寫數據庫的連接。 所以今天把MySQL、MongoDB全接上,做個小實例。朋友們項目里用什么數據庫可以視情況而定。 這里的功能分別為: MySQ…

用了企業微信 AI 半年,這 5 個功能讓我徹底告別重復勞動

每天上班不是在整理會議紀要,就是在翻聊天記錄找文件,寫文檔還要自己摳數據…… 這些重復勞動是不是也在消耗你的時間?作為用了企業微信 AI 功能半年的 “老用戶”,我必須說:企業微信 AI 的這 5 個功能,真的…

從入門到高手,Linux就應該這樣學【好書推薦】

從入門到高手,請這樣學Linux 一、Linux基礎與終端操作 1.1 Linux簡介 Linux 是一種開源的類 Unix 操作系統,以其穩定性、安全性和高效性被廣泛應用于服務器、嵌入式系統及開發環境中。掌握基本命令和操作技巧是 Linux 學習的關鍵。 1.2 終端基礎 打開…

【數據可視化-104】安徽省2025年上半年GDP數據可視化分析:用Python和Pyecharts打造炫酷大屏

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

組件庫UI自動化

一、背景 背景: 組件庫全局改動場景多,組件之間耦合場景多–時常需要全場景回歸組件庫demo有200多個,手動全局回歸耗時耗力細微偏差純視覺無法辨別 可行性分析: 組件庫功能占比 L1(視覺層):圖片…

面試題:JVM與G1要點總結

一.Java內存區域 1.運行時數據區的介紹 2.站在線程的角度看Java內存區域 3.深入分析堆和棧的區別 4.方法的出入棧和棧上分配、逃逸分析及TLAB 5.虛擬機中的對象創建步驟 6.對象的內存布局 1.運行時數據區的介紹 運行時數據區的類型:程序計數器、Java虛擬機棧、本地方…

車輛安全供電系統開發原則和實踐

摘要在汽車行業中,安全應用的重要性在不斷提升,例如受車輛自動化發展以及機械備用系統重要性降低的影響。為應對這些趨勢,安全相關的電氣和 / 或電子系統(E/E 系統)的電源輸入必須由供電系統來保障,這使得功…

WebSocket客戶端庫:websocket-fruge365

🚀 從零開始打造一個WebSocket客戶端庫:websocket-fruge365 📖 前言 在現代Web開發中,實時通信已經成為不可或缺的功能。無論是聊天應用、實時數據監控,還是在線協作工具,WebSocket都扮演著重要角色。然而…

rocketmq批量執行跑批任務報錯

rocketmq批量執行跑批任務,報下面的錯誤,怎么處理一下呢?是修改配置還是修改代碼還是? org.apache.rocketmq.client.exception.MQBrokerException: CODE: 215 DESC: [FLOW]client has exhausted the send quota for the current …

大語言模型(LLM)簡介與應用分享

1. 什么是大語言模型(LLM) 大語言模型(Large Language Model,簡稱 LLM)是基于 深度學習 和 海量文本數據 訓練而成的人工智能模型。 采用 Transformer 架構參數規模巨大(數十億到數千億)能夠 理…

【算法筆記】選擇排序、插入排序、冒泡排序、二分查找問題

算法的筆記,直接上代碼,思路和問題這些,都在代碼注釋上面 1、工具類 為了生成測試代碼和比較器,專門寫了一個數組工具類,代碼如下: /*** 數組工具類*/ public class ArrUtil {/*** 生成隨機數組* 長度是[0,…

行業分享丨基于SimSolid的大型汽車連續沖壓模具剛度分析

*本文投稿自機械零部件制造業用戶 汽車連續模具的剛度直接決定了沖壓件質量(尺寸精度、表面缺陷)與模具壽命。傳統有限元分析(FEA)在面對大型復雜模具裝配體時,存在網格劃分困難、計算資源消耗大、周期長等瓶頸。本文以…

用AI生成的html頁面設計放到到Axure上實現再改造的方法

要將 AI 生成的 HTML 原型導入 Axure,該方法的核心邏輯是以 Figma 為 “中間橋梁”(因 Axure 無法直接讀取 HTML,需通過 Figma 轉換格式),分 3 步即可完成,以下是詳細操作指南(含每步目標、具體…

從入門到實戰:Linux sed命令全攻略,文本處理效率翻倍

從入門到實戰:Linux sed命令全攻略,文本處理效率翻倍 文章目錄從入門到實戰:Linux sed命令全攻略,文本處理效率翻倍一、認識sed:什么是流編輯器?二、吃透sed工作原理:為什么它能高效處理文本&am…

TIOBE 8月編程語言榜深度解析:Python占比突破26%,Perl成最大黑馬

根據TIOBE最新發布的2025年8月編程語言排行榜,一場靜默的技術變革正在上演:Python以26.14%的占比首次突破26%大關,連續12個月穩居榜首。這一數據不僅刷新了Python自身的歷史紀錄,更成為TIOBE指數自2001年創立以來的最高單語言占比…

從發現到恢復,看瑞數信息如何構建“抗毀重構”實戰路徑

在信息化社會,“韌性”“彈性”這些詞匯常被用來形容系統抵御和應對風險的能力,但對于身處關鍵基礎設施行業的運營者來說,這些概念往往過于抽象,難以直接指導實踐。 相比之下,“抗毀重構”更具畫面感。它不僅是一個管理…