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.x2.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 .zprofilePATH调整完后,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.123. 清理无用依赖和残留:
brew autoremove brew cleanup4. 验证:
# 显示不存在 ls -l /opt/homebrew/bin/python3.12 python3.12 -V