macOS怎么安装最新版Python?区分系统自带与官方安装包
详解在macOS上通过Python官方Universal2安装包安装最新版Python的完整步骤,讲清/usr/bin/python3与官方Python.framework目录的区别、PATH优先级配置、SSL证书配置及多版本验证方法。
在 macOS 上安装最新版 Python,最稳妥的做法是从 Python 官方网站(python.org)下载 macOS 专用的 .pkg 安装包直接安装,并保持系统原有的 /usr/bin/python3 不被改动。很多用户在安装后发现终端里的版本没有变化,或者安装包时遇到权限报错,原因大多是没有区分苹果命令行工具提供的 Python 与官方独立安装的 Python。本文先说明两者的目录结构与识别方式,再按实际顺序讲解官方安装包的下载、安装、SSL 证书配置及环境变量核对方法。
一、为什么终端已经有 python3,还需要安装官方包?
打开 macOS 的“终端”(Terminal)输入 python3 -V,许多电脑会直接返回一个版本号(例如 3.9.6),或者弹出一个提示框询问是否安装“命令行开发者工具”(Command Line Developer Tools)。这个位于 /usr/bin/python3 的程序并不是 macOS 预装给用户做日常开发的主力环境,而是 Apple 随 Xcode Command Line Tools 附带的解释器。
Apple 提供 /usr/bin/python3 的主要目的是满足构建工具和脚本运行需求。它的版本随当前系统的 Xcode 工具链固定,更新节奏远慢于 Python 官方发布周期,且不包含官方自带的图形界面工具 IDLE 和独立的根证书配置脚本。更重要的是,/usr/bin 目录受 macOS 系统完整性保护(SIP)限制,任何用户或程序都无法直接删除、覆盖或就地升级这个文件。
而从 Python 官网下载的 .pkg 安装包,会将完整的新版 Python 写入系统级的独立框架目录 /Library/Frameworks/Python.framework,并通过修改 Shell 配置文件把新版路径排在 /usr/bin 前面。两者各自存放在不同目录,互不覆盖。
| 对比维度 | 系统/命令行工具自带 Python | Python.org 官方安装包 |
|---|---|---|
| 可执行文件路径 | /usr/bin/python3 |
/Library/Frameworks/Python.framework/Versions/3.x/bin/python3(并在 /usr/local/bin/python3 创建符号链接) |
| 来源与维护方 | Apple(随 Xcode Command Line Tools 安装) | Python 软件基金会(Python.org) |
| 版本特点 | 版本较旧且长期固定(常见为 3.9.x) | 始终提供最新稳定版,可并存多个次要版本 |
| 能否直接删除或覆盖 | 受 SIP 保护,不可删除或覆盖 | 可通过删除对应 Framework 目录与链接卸载 |
| 适用场景 | 系统级脚本调用、Xcode 构建依赖 | 日常 Python 编程、第三方库安装、虚拟环境创建 |
二、安装前先检查当前电脑上的 Python 状态
在下载新版本前,先打开“应用程序 → 实用工具 → 终端”,执行以下两条命令,确认当前电脑上已经存在哪些 `python3` 以及它们所在的路径。
终端执行命令(环境:macOS 默认 zsh):which -a python3
python3 -V
示例输出(仅安装了命令行工具的常见状态):
/usr/bin/python3
Python 3.9.6
这里使用 which -a python3 而不是普通的 which python3,是因为 -a 参数会按当前环境变量 PATH 的先后顺序,列出系统能找到的所有同名 `python3` 路径。如果输出只有一行 /usr/bin/python3,说明当前电脑尚未安装官方版本,或者官方版本的路径没有写入环境变量。
三、下载并安装 Python 官方最新版(.pkg)
Python 官方为 macOS 提供了将 Intel 芯片(x86_64)和 Apple Silicon 芯片(M1/M2/M3/M4 等 arm64 架构)打包在一起的通用安装程序(Universal2 installer),无需担心选错芯片架构。
1. 从官网获取最新稳定版安装包
使用浏览器访问 Python 官方 macOS 下载页:https://www.python.org/downloads/macos/。页面顶部默认展示当前的最新稳定版本(Stable Releases)。
- 認准带有 Stable Releases 标记的条目,点击 Download macOS 64-bit universal2 installer 链接,下载形如
python-3.x.y-macos11.pkg的安装文件(其中3.x.y对应官网当时的最新稳定版本号;macos11表示最低支持 macOS 11 Big Sur 及更高版本,在 macOS Ventura、Sonoma、Sequoia 等新系统上均可正常安装)。 - 不要误选页面右侧的 Pre-releases(预发布测试版,名称中带有
a、b或rc字样),以免部分第三方扩展库尚未提供兼容的预编译包。
2. 运行 .pkg 安装向导
双击下载好的 .pkg 文件启动安装器,依次点击“继续”(Continue)阅读说明并同意软件许可协议。在点击“安装”(Install)并输入 macOS 登录密码后,安装程序会自动完成三件事:
- 将完整的解释器、标准库和头文件写入
/Library/Frameworks/Python.framework/Versions/3.x; - 在
/usr/local/bin目录下创建指向该版本的python3和pip3符号链接; - 自动向当前用户主目录下的
~/.zprofile(如果默认 Shell 为 bash 则是~/.bash_profile)追加环境变量配置,把新版 Python 的bin目录放到PATH最前面。
3. 运行 Install Certificates.command 配置 SSL 证书
这是 macOS 官方安装包最容易被忽略的一步。Python.org 的 macOS 安装包默认不直接读取 macOS“钥匙串访问”里的系统根证书,而是使用独立捆绑的 certifi 证书包。如果在安装窗口关闭前忽略了证书安装脚本,后续用 urllib 请求 HTTPS 网址或拉取数据时,常会报 CERTIFICATE_VERIFY_FAILED 错误。
安装完成时,访达(Finder)通常会自动弹出 /Applications/Python 3.x 文件夹。请在该文件夹中双击运行 Install Certificates.command。此时会弹出一个终端窗口,自动使用 `pip` 安装并链接 `certifi` 根证书,当窗口末尾显示 [进程已完成] 或 [Process completed] 时即可关闭窗口。
如果安装窗口已经关闭,也可以直接在终端里手动执行该脚本(将命令中的 3.x 替换为你实际安装的次要版本号,例如 3.13):
open "/Applications/Python 3.x/Install Certificates.command"
四、验证安装结果与理解 PATH 优先级机制
安装向导修改的是登录配置文件 ~/.zprofile,安装前就已经打开的旧终端窗口不会自动读取新配置。因此,请先关闭旧窗口重新打开一个终端,或者在当前窗口执行以下命令让配置立即生效:
source ~/.zprofile
which -a python3
python3 -V
pip3 -V
示例输出(以官方安装 3.13 系列为例):
/Library/Frameworks/Python.framework/Versions/3.13/bin/python3
/usr/local/bin/python3
/usr/bin/python3
Python 3.13.2
pip 25.0 from /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pip (python 3.13)
从 which -a python3 的示例输出可以清楚看到三个路径同时存在,且排在第一行的是 /Library/Frameworks/Python.framework/...,最后一行才是系统自带的 /usr/bin/python3。当你在终端直接输入 python3 时,Shell 会从上到下采用第一个命中的程序,因此实际运行的就是刚安装的官方最新版,而系统自带的 /usr/bin/python3 依然完好保留在原处。
五、安装后常见困惑与排查方法
1. 安装完成后输入 python3 -V 仍然是旧版本 3.9.6?
出现这种情况通常有两个原因:
- 未重开终端或配置写在另一个文件:先查看
~/.zprofile中是否已经包含官方安装器写入的段落。可以在终端运行cat ~/.zprofile检查。如果你平时使用了 Oh My Zsh 或在~/.zshrc中手动重置过export PATH=...,可能会把~/.zprofile先加载的路径覆盖掉。 - 修复做法:打开
~/.zshrc检查是否存在写死的PATH赋值。若需要将官方 Python 明确置于最前,可在~/.zprofile(或~/.zshrc末尾)确认包含如下两行(将3.x替换为你的实际安装版本,如3.13):
PATH="/Library/Frameworks/Python.framework/Versions/3.x/bin:${PATH}"
export PATH
2. 为什么输入 python 提示 command not found: python?
从 macOS Monterey(12.3)开始,苹果彻底移除了历史遗留的 Python 2.7(即早期的 /usr/bin/python),而 Python 官方安装包为了遵守 PEP 394 规范,默认只注册 python3 和 pip3 命令,不自动占据无数字后缀的 python 命令。
平时在终端运行脚本或安装包时,直接使用 python3 和 pip3 是最清晰、最不易混淆的做法。如果部分旧脚本要求直接调用 python,可以在激活项目虚拟环境(venv)后使用——虚拟环境内部会自动同时提供 python 与 python3 两个命令,无需修改系统全局别名。
3. 如何使用官方新版 Python 创建独立项目环境?
即便已经切换到了官方最新版 Python,也不建议直接用 pip3 install 把所有第三方库都装进全局的 /Library/Frameworks/Python.framework 目录。在开发具体项目时,使用内置的 venv 模块创建虚拟环境,既能直接继承官方新版解释器,又能让每个项目的依赖互不干扰:
mkdir -p ~/projects/demo_app
cd ~/projects/demo_app
python3 -m venv .venv
source .venv/bin/activate
which python
python -V
示例输出:
/Users/username/projects/demo_app/.venv/bin/python
Python 3.13.2
(.venv) 标识。此时无论输入 python 还是 pip,指向的都是当前项目目录 `.venv` 下的新版官方 Python 副本,完全不会改动系统自带的 /usr/bin/python3。
六、核心要点总结
在 macOS 上管理 Python 环境,核心在于“不动系统自带目录、用好官方独立框架、核对 PATH 顺序”。下图汇总了从区分环境、执行安装到日常使用的完整核对清单:
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













