【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
相关推荐
量化君也10 分钟前
快速入门量化交易都要学些什么?
大数据·人工智能·python·算法·金融
吴卫斌10 分钟前
行业ETF轮动策略实战(二):精选候选池——打造你的赛道武器库
大数据·python·股票·量化交易
Tbisnic15 分钟前
AI大模型学习 第十天:让程序“指挥”大模型 —— 从对话到工具调用
人工智能·python·ai·大模型·react·cot·提示词工程
伊布拉西莫18 分钟前
Flask 请求生命周期
后端·python·flask
站大爷IP35 分钟前
那天,我的Python函数死活改不了全局变量
python
右耳朵猫AI36 分钟前
Python周刊2026W22 | Django 6.1 Alpha 1发布、Nuitka 4.1发布、PEP 831终稿、PEP 808已接受
开发语言·python·django
Wonderful U41 分钟前
Python+Django实战|美食菜谱分享与食材采购一体化系统:食谱发布收藏、图文教程、食材商城、购物车、订单管理、美食点评、智能食谱推荐
python·django·美食
秦jh_1 小时前
【LangChain核心组件】少样本提示(示例选择器)
人工智能·python·langchain
资深流水灯工程师1 小时前
PyCharm 增强插件完整安装与配置指南(PySide6 开发专用)
ide·python·pycharm