macOS和Linux下通过包管理器安装Python

许南星
许南星
发布时间:2026-10-22| 3人浏览过
原创

在macOS与各类Linux发行版中,通过系统或第三方包管理器安装Python是兼顾维护便利性、依赖自动解析与系统稳定性的首选方案。相较于从源码编译或手动解压二进制包,包管理器能自动处理依赖库、提供一键升级与安全卸载支持,同时避免破坏操作系统内部依赖的基础运行环境。本文将分别介绍macOS及主流Linux发行版(Ubuntu/Debian、Fedora/RHEL、Arch Linux)下使用包管理器安装Python 3的具体操作、多环境隔离原则及安装结果的确认手段。

macOS和Linux下通过包管理器安装Python
图 1:包管理器安装与验证 Python 的标准全流程

操作前的基础认知:系统Python与用户Python

在动手安装之前,必须明确“系统内置Python”与“用户工作用Python”的界限:

  • 系统Python(System Python):位于 /usr/bin/python3。macOS(随 Command Line Tools 提供)与绝大多数现代 Linux 发行版(如 Ubuntu、Fedora)在系统底层依赖 Python 运行关键守护进程、安装脚本或系统工具。直接使用 root 权限替换此二进制文件或用全局 pip 覆盖其中的库,极易导致系统级故障。
  • 包管理器安装的Python:位于独立且受控的前缀目录下。例如 macOS 下 Homebrew 安装至 /opt/homebrew/bin/python3(Apple Silicon)或 /usr/local/bin/python3(Intel);Linux 下则由包管理器维护专门的独立版本或模块分离体系。
macOS和Linux下通过包管理器安装Python
图 2:系统自带 Python 与包管理器安装 Python 的职责与隔离架构

macOS下通过Homebrew安装Python

Homebrew 是 macOS 平台事实上的标准包管理器。使用 Homebrew 安装 Python 前,系统需要具备基础的编译工具链(即 Xcode Command Line Tools)。

1. 确认基础依赖

打开终端(Terminal),首先检查是否已安装 Xcode 命令行工具。若未安装,执行以下命令根据系统弹窗完成安装:

xcode-select --install

示例说明:若已安装,终端会返回“command line tools are already installed”提示。

2. 更新Homebrew与安装Python

更新本地 Formula 数据库,以确保拉取到最新的稳定版本定义:

brew update
brew install python

Homebrew 会自动解析依赖(如 openssl@3、readline、xz 等),完成下载、解压与符号链接建立。如果需要安装指定大版本的 Python(例如因项目兼容性要求需要 3.11),可以明确指定版本名:

brew install python@3.11

3. 验证安装与环境变量

安装完成后,运行以下命令验证实际命中的二进制位置与版本号:

which python3
python3 --version
which pip3

以 Apple Silicon(M1/M2/M3/M4等系列芯片)为例,正常的输出结果应形如:

/opt/homebrew/bin/python3
Python 3.12.3
/opt/homebrew/bin/pip3

示例输出:显示路径前缀为 /opt/homebrew/bin,表明优先使用的是 Homebrew 提供的版本,而非 /usr/bin 下的系统版本。

注意:如果 which python3 依然输出 /usr/bin/python3,说明 PATH 环境变量未将 Homebrew 路径置于前列。可以在终端配置文件(~/.zshrc)末尾添加并重新加载:

eval "$(/opt/homebrew/bin/brew shellenv)"

Linux主流发行版下通过包管理器安装Python

Linux 发行版众多,各分支使用的包管理器及其对 Python 软件包的拆分粒度各不相同。下面逐一说明常见发行版的操作方法。

macOS和Linux下通过包管理器安装Python
图 3:各主流 Linux 发行版的包命名习惯与拆分特性对照

1. Ubuntu 与 Debian 系(APT)

Debian 及其衍生版对软件包实行细粒度拆分,标准安装包 python3 并不会默认包含虚拟环境支持模块 venv。因此在安装时,强烈建议将 python3-venv 与 python3-pip 一并安装:

sudo apt update
sudo apt install -y python3 python3-pip python3-venv

如果未来需要编译含有 C/C++ 扩展的第三方库(例如 numpy、psycopg2 等),还需要补充开发头文件:

sudo apt install -y python3-dev build-essential

2. RHEL / CentOS / Fedora 系(DNF)

在 Fedora 以及较新的 RHEL/Rocky Linux/AlmaLinux 中,主要使用 dnf 作为包管理器:

sudo dnf install -y python3 python3-pip

在 RHEL 系列中,如果需要指定某个大版本,通常可使用模块流(module stream)或指定具体包名(例如 python3.11):

sudo dnf install -y python3.11 python3.11-pip

3. Arch Linux 系(Pacman)

Arch Linux 属于滚动发行版,其软件仓库中的 python 包即代表上游最新发布的 Python 3 稳定版:

sudo pacman -Syu
sudo pacman -S python python-pip

在 Arch 下,头文件与 venv 模块均已包含在主 python 包内,无需单独寻找类似 -dev 的拆分子包。

重要机制:PEP 668 与外部管理环境提示

在较新的 Linux 发行版(如 Ubuntu 23.04+、Debian 12+、Arch Linux 等)以及通过 Homebrew 安装的 macOS 环境中,当尝试在全局环境执行 pip install <package> 时,系统通常会中断并输出类似以下的错误提示:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages on this system, you need to create
    a virtual environment using 'python3 -m venv <dir>'.

示例输出:PEP 668 保护机制抛出的标准阻止提示。

这是 Python 官方 PEP 668 规范与操作系统包管理器协同实施的安全防护机制。它阻止普通用户通过 pip 将第三方文件无差别写入 /usr/lib/python3.x/site-packages,从而杜绝 pip 与 apt/dnf 互相覆盖同一文件的灾难性冲突。

遇到该提示时,不要随意添加 --break-system-packages 参数绕过限制,正确且标准的做法是使用 Python 内置的 venv 模块创建独立虚拟环境。

安装完成后的规范使用与验证

完成包管理器安装后,建议执行一套标准流程以确认安装完好,并建立符合现代化规范的开发工程。

macOS和Linux下通过包管理器安装Python
图 4:包管理器安装后结合虚拟环境的标准工作流与验证操作

完整操作示范

在任意工作目录下,按以下步骤建立项目与测试:

# 1. 创建并进入测试目录
mkdir py_project && cd py_project

# 2. 调用已安装的 Python 解释器创建虚拟环境
python3 -m venv .venv

# 3. 激活虚拟环境
source .venv/bin/activate

# 4. 验证当前使用的 Python 路径(此时已指向当前目录下的沙箱)
which python
which pip

# 5. 在沙箱中自由使用 pip 安装软件包
pip install --upgrade pip

在虚拟环境被激活的状态下,终端提示符前通常会显式附带 (.venv) 标识。此时执行的 python 与 pip 均限定在该虚拟环境中,不需要也绝不应使用 sudo。若要退出虚拟环境,仅需在终端输入:

deactivate

常见疑问与排错

  • 输入 python 提示命令未找到(command not found):现代 Linux 发行版与 macOS 的 Homebrew 默认仅链接 python3,以避免兼容历史遗留的 Python 2 脚本。可以在环境中使用 python3,或在虚拟环境中直接使用 python(虚拟环境会自动创建 python 到 python3 的软链接)。
  • Ubuntu 上创建虚拟环境报错 The virtual environment was not created successfully because ensurepip is not available:这表明仅安装了 python3 而遗漏了 python3-venv,运行 sudo apt install python3-venv 即可补齐缺失的轮子文件。
  • 后续如何更新 Python 版本:包管理器最大的优势在于维护成本低。macOS 下执行 brew upgrade python,Debian/Ubuntu 下执行 sudo apt update && sudo apt upgrade,即可自动完成安全补丁与次版本号平滑升级。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。