1. 需求

mac自带的python3版本为3.9.6,期望将其升级到3.13版本。mac版本:Apple M4 。


2. 升级python版本

这里使用Homebrew 来升级python版本。

2.1 安装或更新 Homebrew

如果已安装了Homebrew,跳过该步骤。

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

2.2. 安装 Python 3.13

brew install python@3.13

注意:python@3.13 是 Homebrew 中的公式名称。

2.3. 将新版本加入 PATH

在 .zprofile 配置文件里,将brew安装的python加入PATH路径。

# step1 设置 homebrew Path 
export PATH="/opt/homebrew/bin:$PATH"  # Apple Silicon (M1/M2/M3)
# 或
export PATH="/usr/local/bin:$PATH"     # Intel Mac

# step2 .zprofile文件改完后刷新下生效
source .zprofile

注意:这里将 “/opt/homebrew/bin” 放在了 $PATH 之前,表示默认优先使用brew安装的python版本

⚠️ 注意:系统自带的 /usr/bin/python3 仍是旧版本,但通过 Homebrew 安装的 python3 会优先(因为 PATH 顺序)。

2.4. 验证版本

python3 --version

# 应显示 Python 3.12.x

2.5 注意事项

  • 不要删除系统自带的 Python(位于 /usr/bin/python3,它是 macOS 系统组件依赖的。
  • 使用 Homebrew 或 pyenv 安装的 Python 是独立的,不会影响系统。

3. 相关操作

3.1. 查看不同版本python

python版本号 -V

如果你想明确用某个版本:可以直接用 python3.12 或 python3.13。

3.2. 为什么 python3 不是指向最新的3.13版本?

明明已经使用brew安装了python3.13, 为什么 python3 不是指向最新的3.13版本呢?

python3 不是“自动指向最高版本”的名字,它只是一个普通命令名(通常是一个可执行文件或符号链接),最终解析到哪个 Python,取决于 PATH 优先级以及你安装 Python 的方式(macOS 自带 / Xcode / Homebrew / pyenv / 官方安装包等)。

macOS 上常见情况是:系统或某个组件提供了 python3(比如 3.9.x),而你又另外安装了 3.13,于是出现多个python版本并存。

3.2.1  Python3对应的“默认版本”是哪个?

使用如下命令可以看到python3命令默认解析到的那个版本

which python3

# python3命令对应的默认版本
python3 -c "import sys; print(sys.executable); print(sys.version)"

可以看到,python3命令默认指向mac系统自带的python版本,位置在 /usr/bin/python3。而非使用brew安装的3.13版本对应的位置:

3.2.2 为什么 python3 指向的不是最新的 3.13?

现状:

  • python3 现在命中的是 /usr/bin/python3(系统自带 3.9.6)
  • Homebrew 也有一个 /opt/homebrew/bin/python3(我想用的 3.13版本)

原因:

  • 之所以没用到 brew 的版本,是因为 PATH 里 /usr/bin 排在 /opt/homebrew/bin 前面。
    • 我的.zprofile 里对homebrew path的设置如下
    • export PATH="$PATH:/opt/homebrew/bin"

3.2.3 让python3 指向最新的 3.13

调整 PATH,让 brew 的 python3 优先生效:

# 修改.zprofile 文件,将homebrew路径放到 $PATH 之前
export PATH="/opt/homebrew/bin:$PATH"


# 修改完后使其生效
source .zprofile 

PATH调整完后,python3默认指向/opt/homebrew/bin里最新的python版本,这里是3.13版本:

说明:这不会改动系统的 /usr/bin/python3,只是让你在终端里默认用 brew 的。

3.3. 卸载指定版本python

我用Homebrew安装了 python3.12 , python3.13 两个版本的python。现在希望移除 3.12 只保留 3.13 版本。

1. 先确认对应的 formula 名称

brew list --formula | grep -E '^python@3\.12$|^python@3\.13$|^python$'

2. 卸载 Python 3.12(通常是 python@3.12):

brew uninstall python@3.12

3. 清理无用依赖和残留:

brew autoremove
brew cleanup

4. 验证:

# 显示不存在
ls -l /opt/homebrew/bin/python3.12
python3.12 -V

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐