【2026 最新】Python 下载与安装:在 macOS 下使用 Homebrew 和 pyenv 完美管理多版本 Python

在 macOS 上使用 Homebrew 管理多版本 Python,最推荐和主流的方案是结合使用 pyenvpyenv 本身可以通过 Homebrew 轻松安装,它能让你方便地安装、隔离和切换任意多个 Python 版本,而不会干扰系统自带的 Python。

Homebrew 安装教程

【2026 最新】Mac 终端神器 Homebrew 完全指南:从安装、换源加速到核心命令速查(Mac 版)_mac homebrew-CSDN博客

以下是使用 pyenv 进行多版本 Python 管理的完整步骤:

一、安装并配置 pyenv

通过 Homebrew 安装 pyenv

打开终端,执行以下命令:

复制代码
brew install pyenv

配置 Shell 环境

macOS 默认使用 zsh,你需要将 pyenv 的初始化脚本添加到 ~/.zshrc 配置文件中。依次执行以下三条命令:

复制代码
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

使配置生效

执行以下命令,让刚才的配置立即生效,或者你也可以直接重启终端。

复制代码
source ~/.zshrc

二、使用 pyenv 安装和管理 Python 版本

配置完成后,你就可以使用 pyenv 来安装和管理 Python 了。

安装指定的 Python 版本

你可以安装任意多个版本,例如 Python 3.11.9 和 3.12.5:

复制代码
pyenv install 3.11.9
pyenv install 3.12.5

查看已安装的版本

复制代码
pyenv versions

这条命令会列出所有你通过 pyenv 安装的 Python 版本,当前使用的版本前会有一个星号 *

三、查看安装的 Python 路径

例如查看 3.11.9 版本:

复制代码
pyenv prefix 3.11.9

然后键盘 command + shift + G 输入 打印出来的路径就可以找到你的 Python 位置了。

四、灵活切换 Python 版本

pyenv 提供了多种切换方式,可以满足不同场景的需求。

  • 全局切换 (Global)

    设置一个默认的 Python 版本,对所有终端会话生效。

    复制代码
    pyenv global 3.11.9

    之后在任何目录下执行 python --version,都会显示 3.11.9。

  • 项目级切换 (Local)

    为特定项目设置独立的 Python 版本。进入项目目录后执行:

    复制代码
    cd /path/to/your/project
    pyenv local 3.12.5

    这个命令会在项目根目录创建一个 .python-version 文件。当你进入这个目录时,pyenv 会自动将 Python 版本切换到 3.12.5;离开目录后,版本会自动恢复。

  • 临时切换 (Shell)

    仅在当前终端会话中临时使用某个 Python 版本。

    复制代码
    pyenv shell 3.12.5

    这个设置只对当前打开的终端窗口有效,关闭窗口后即失效。

五、完全卸载

使用 pyenv 卸载(最推荐,最干净)

既然你是用 pyenv 管理的,用它自带的命令卸载是最安全的,它会自动删除相关文件。

  1. 卸载指定版本

    假设你要卸载 3.11.9

    bash 复制代码
    pyenv uninstall 3.11.9

    系统会提示你确认,输入 y 并回车即可。

  2. 验证是否删除

    运行以下命令,确保该版本已不在列表中:

    复制代码
    pyenv versions
相关推荐
IKaros_α‌2 小时前
mac上安装openclaw从入门到删除
macos
x-cmd2 小时前
macOS 内存模型深度解析 | x free 设计哲学
linux·macos·内存·策略模式·free·x-cmd
Freak嵌入式2 小时前
小作坊 GitHub 协作闭环:fork-sync-dev-pr-merge 实战指南
python·github·远程工作·代码规范·micropython·协作
跟着珅聪学java2 小时前
在 Java 中处理 JSON 去除空 children数组,可以使用 Jackson 库。这里有几种实现方式
开发语言·windows·python
Chase_______2 小时前
【Python基础 | 第5章】面向对象与异常处理:一文搞懂类、对象、封装、继承、多态
开发语言·python
YanDDDeat2 小时前
【大模型微调】基于 Llama3-8B 的 LoRA 微调专有领域QA 问答对生成模型
python·语言模型·llama
小李云雾2 小时前
Python Web 路由详解:核心知识点全覆盖
开发语言·前端·python·路由
itinymeng2 小时前
在 macOS 上遇到 brew: command not found 错误,通常是因为 ‌Homebrew 未安装‌ 或 ‌PATH 环境变量未正确配置‌
macos
oscar9992 小时前
Claude Code 的“计算机使用”功能:让命令行助手真正操控macOS桌面
macos·claude code·computer