macOS怎么安装Python?Homebrew与官方安装包两种方法对比
深入对比在macOS系统上安装Python的两种主流方式:Homebrew包管理器与Python官网.pkg安装包。涵盖详细操作步骤、安装路径差异、PEP 668环境隔离机制、证书配置以及选型决策建议。
在macOS上安装Python,主流且可靠的途径主要有两种:通过终端包管理器 Homebrew 命令行安装,以及前往 Python 官网下载并运行图形界面的 .pkg 安装包。本文将分别介绍两者的完整安装与验证步骤,从安装路径、升级机制、多版本共存及依赖管理四个维度展开深度对比,并给出针对不同使用需求的选型建议。
一、了解 macOS 自带的系统 Python 环境
在打开终端并尝试安装新 Python 之前,许多用户会发现输入 python3 可以直接唤醒某些响应。这是由于 macOS 默认内置了 Xcode Command Line Tools 的 Python 占位程序(通常位于 /usr/bin/python3)。
需要明确的是,系统自带的 Python 环境是为系统底层组件及 Xcode 命令行工具服务的,版本往往落后于社区最新版,且系统完整性保护机制(SIP)限制了对该环境进行任何全局第三方库的修改。因此,无论是开展日常学习还是项目开发,都强烈建议独立安装第三方 Python 运行环境,避免污染或破坏系统自带环境。
二、方法一:使用 Homebrew 命令行安装
Homebrew 是 macOS 上最主流的包管理器。如果你已经安装了 Homebrew,通过命令行安装和维护 Python 是最高效的做法。
1. 前置准备与 Homebrew 环境确认
打开 macOS 自带的“终端”(Terminal)应用,输入以下命令确认 Homebrew 是否可用并更新软件索引:
# 检查 brew 是否正常安装
brew --version
# 更新 Homebrew 仓库索引
brew update
如果终端提示 brew: command not found,说明系统尚未安装 Homebrew,读者需先访问 brew.sh 复制官方安装脚本完成配置。
2. 执行 Python 安装
确认 Homebrew 正常工作后,执行以下命令即可下载并安装当前最新的稳定版 Python:
brew install python
Homebrew 会自动解析并安装 Python 依赖的各类系统库(如 openssl、readline、sqlite、xz 等),并自动配置软链接至系统 PATH 路径。
若需要安装指定历史大版本(例如项目依赖 Python 3.11),可以使用版本化公式:
brew install python@3.11
3. 验证安装结果与路径指向
安装完成后,在终端中输入以下指令,检查 Python 的执行路径和当前版本:
# 查看可执行文件路径
which python3
# 示例输出(Apple Silicon 芯片):
/opt/homebrew/bin/python3
# 示例输出(Intel 芯片):
/usr/local/bin/python3
# 查看版本号
python3 --version
Python 3.12.x
三、方法二:使用官方 .pkg 安装包安装
如果你不熟悉命令行,或者希望拥有官方自带的简易集成开发环境(IDLE),从 Python 官方网站下载安装包是最简单直观的选择。
1. 下载官方安装包
使用浏览器访问 Python 官方下载页面 https://www.python.org/downloads/macos/。网站通常会自动识别 macOS 系统并提供稳定版的下载入口,名称通常为 macOS 64-bit universal2 installer(该格式已原生支持 Apple Silicon M系列芯片及 Intel 架构)。
2. 执行图形向导安装
下载完成后,在“访达”(Finder)中双击打开 .pkg 文件,按照屏幕提示逐步点击“继续”、“同意许可协议”,输入 macOS 管理员密码后开始安装。安装向导会将 Python 框架写入 /Library/Frameworks/Python.framework,并在 /usr/local/bin 自动创建 python3 和 pip3 的符号链接。
3. 极为关键的避坑步骤:运行根证书安装脚本
这是许多初学者使用官方安装包时最容易忽略的一步。macOS 的官方 Python 不直接使用系统的钥匙串证书,而是自带独立的 OpenSSL 模块。如果在安装后不更新证书,后续在运行爬虫、调用 urllib 或 requests 访问 HTTPS 链接时,极易抛出 SSL: CERTIFICATE_VERIFY_FAILED 错误。
安装完成后,安装程序会在“应用程序”中生成一个名为 Python 3.x 的文件夹,请务必执行以下操作之一:
- 在“访达”中打开“应用程序” -> 找到
Python 3.12文件夹,双击运行其中的Install Certificates.command脚本; - 或者直接在终端中运行以下命令(以 3.12 为例):
/Applications/Python\ 3.12/Install\ Certificates.command
终端会自动运行并下载安装 certifi 证书包,出现 [Process completed] 即代表证书配置完成。
四、底层差异剖析:安装路径与系统架构分布
了解这两种方法将文件放置在何处,是日后进行环境排错、配置编辑器(如 VS Code 或 PyCharm 解释器)以及处理环境变量的基础。
1. 为什么在 Apple Silicon (M1/M2/M3/M4) 芯片上路径不同?
在较早的 Intel 架构 Mac 上,Homebrew 的默认根目录位于 /usr/local。而从 Apple Silicon 架构开始,为了避免与 Rosetta 2 模拟运行的 x86_64 二进制文件混淆,Homebrew 统一将根目录迁移至 /opt/homebrew。
相反,官方 .pkg 安装包无论在哪种芯片架构下,始终将二进制文件软链接至 /usr/local/bin。因此,当你在同一个系统上同时安装了这两种 Python 时,终端最终执行哪一个,完全取决于你的环境变量 $PATH 中哪个目录排列在前面。可以通过查看环境变量排查优先级:
echo $PATH
如果 /opt/homebrew/bin 在前,终端输入 python3 将优先启动 Homebrew 版本;如果 /usr/local/bin 在前,则启动官方安装包版本。
五、核心机制差异:包管理与 PEP 668 环境隔离
安装完 Python 后,几乎所有用户都会开始使用 pip install 安装外部库。这是 Homebrew 版本与官方安装包表现出最大行为差异的地方。
1. Homebrew 为什么报错:externally-managed-environment?
从 Python 3.11 开始,Python 官方引入了 PEP 668 规范。Homebrew 在打包 Python 时遵循了该标准,在解释器目录中放入了一个名为 EXTERNALLY-MANAGED 的标记文件。
这个机制的出发点非常明确:Homebrew 自身会将 Python 当作其他上游命令行工具(如 glances、ansible 等)的依赖运行时。如果允许用户随意通过 pip3 install 全局更新底层公共包,极易破坏 Homebrew 管理的其他软件。因此,Homebrew 强制要求用户采用虚拟环境(Virtual Environment)。
在项目工程根目录下执行以下三步,即可进入干净且受保护的独立环境:
# 1. 创建虚拟环境目录 .venv
python3 -m venv .venv
# 2. 激活虚拟环境
source .venv/bin/activate
# 3. 此时可正常安装任何所需库
pip install requests numpy pandas
六、综合维度详细对比
为了帮助读者直观评估两种安装方式在日常使用全周期的优劣,下表从安装便利性、更新维护、卸载复杂度、多版本共存等 7 个关键维度进行了对照总结:
| 对比维度 | Homebrew 命令行方式 | Python 官网 .pkg 安装包 |
|---|---|---|
| 上手难度 | 中等。需要先配置 Homebrew,需具备基础的终端使用常识。 | 极低。双击向导安装,全图形界面,符合常规 Mac 软件安装习惯。 |
| 内置图形工具 | 无内置 IDLE。仅提供 Python 终端交互式命令行。 | 自带官方 IDLE 轻量级集成开发环境,方便即开即练。 |
| 网络证书处理 | 自动绑定 Homebrew 的 openssl 依赖,开箱即用,无需配置证书。 |
需手动运行 Install Certificates.command,否则 HTTPS 请求报错。 |
| 升级维护机制 | 极简。运行 brew upgrade python 一键更新至最新稳定小版本。 |
繁琐。需重新前往官网下载最新 .pkg,覆盖或平行安装。 |
| 第三方包策略 | 受 PEP 668 约束,强制采用 venv 隔离环境,杜绝全局依赖污染。 |
允许直接在全局环境执行 pip install,方便新手但容易失控。 |
| 多版本并存 | 良好。支持按 python@3.11、python@3.12 独立共存并分别调用。 |
支持不同次版本并存(如 3.11 与 3.12 目录独立),但符号链接需手动切换。 |
| 卸载清洁度 | 非常干净。运行 brew uninstall python 即可彻底清除。 |
无官方卸载脚本。需手动删除 /Library/Frameworks 及多处符号链接。 |
七、决策指南与最终建议
面对两种安装路径,选择的关键不是“哪一种绝对更好”,而是“哪一种更匹配你当前的学习与工作流”:
-
如果你是高校学生或非计算机背景初学者:希望立刻在屏幕上敲出第一行
print("Hello, World!"),对终端指令和环境变量尚不熟悉,直接选择官方 .pkg 安装包是最稳妥的。它提供了可视化的 IDLE 编辑器,且避开了 Homebrew 的前置安装门槛。唯一需要牢记的是:安装后务必运行Install Certificates.command。 -
如果你是软件开发者、数据分析师或重度终端用户:你的 Mac 上很可能已经安装了 Git、Node.js 等开发工具,选择 Homebrew 会让你后期的维护成本极低。所有底层依赖、安全更新都可以通过一条
brew upgrade完成。配合python3 -m venv建立隔离环境,能从根源上避免复杂的第三方包版本污染。
当后续项目开发深入、需要在同一台 Mac 上同时切换维护 Python 3.8、3.9、3.10、3.11 等多个历史版本时,读者还可以在上述基础之上进一步学习使用专门的版本管理工具(如 pyenv 或 conda)。但在此之前,掌握 Homebrew 与官方安装包的基本原理与差异,已经足以让你在 macOS 上从容构建起稳固的 Python 开发环境。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









