MacOS使用pyenv和brew优雅管理Python多版本环境

 更新时间:2026年03月24日 09:08:09   作者:@赵士杰  
本文采用「pyenv + Homebrew」方案,为 MacOS 搭建干净、隔离的 Python 多版本环境,彻底避免污染系统自带 Python,完美适配不同项目版本需求,有需要的小伙伴可以参考下

本文采用「pyenv + Homebrew」方案,为 MacOS 搭建干净、隔离的 Python 多版本环境,彻底避免污染系统自带 Python,完美适配不同项目版本需求。

一、前置依赖安装(必做)

Python 编译安装需依赖 Xcode 命令行工具和一系列编译库,首先确保你的 Mac 安装了必要的依赖,避免后续报错。

Xcode 命令行工具和 Homebrew 的安装可以参考:MacOS上Homebrew 安装、配置、更改国内镜像源及使用图文详解

安装完成后,执行 brew -v 验证,输出版本号(如 brew 4.2.18)即表示安装/升级成功。

二、安装并配置 pyenv

pyenv 是一款轻量的 Python 版本管理工具,可轻松实现多版本切换,先完成 pyenv 的安装和环境配置。

2.1 安装 pyenv

通过 Homebrew 快速安装 pyenv,执行命令:

brew install pyenv

2.2 配置 pyenv 环境变量

macOS 使用 zsh 终端,无需区分终端类型,直接执行以下命令,将 pyenv 配置写入环境变量文件:

# 写入环境变量配置
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

2.3 使配置立即生效

配置写入后,需重新加载环境变量,执行命令:

source ~/.zshrc

2.4 验证 pyenv 安装

执行以下命令,若输出版本号(如 pyenv 2.3.34),则表示 pyenv 安装配置成功:

pyenv -v

三、安装 Python 编译依赖(必装,防编译失败)

执行以下命令安装 Python 编译依赖,防止 Pyenv 下载 Python 时安装编译失败:

brew install openssl readline sqlite3 xz zlib tcl-tk

Apple Silicon 额外配置(M 系列芯片):

echo 'export LDFLAGS="-L/opt/homebrew/opt/zlib/lib -L/opt/homebrew/opt/openssl/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I/opt/homebrew/opt/zlib/include -I/opt/homebrew/opt/openssl/include"' >> ~/.zshrc
source ~/.zshrc

四、安装与管理 Python 版本

4.1 查看可安装版本

pyenv install --list

4.2 安装指定 Python 版本

执行 pyenv 安装命令安装常用版本(比如 3.13.3),自动下载 Python 源码并编译安装:

pyenv install 3.13.3

注意:安装耗时约 2-5 分钟,取决于网络速度和芯片性能,安装过程中终端会显示编译进度,耐心等待即可,不要中途中断命令。

4.3 设置生效版本

全局默认(所有终端生效,推荐)

pyenv global 3.13.3

项目局部(仅当前目录生效)

pyenv local 3.13.3

当前终端临时(仅本次会话生效)

pyenv shell 3.13.3

4.4 刷新版本缓存

pyenv rehash

4.5 验证环境

# 验证 Python 版本
python --version

# 验证 pip 版本
pip --version

# 查看已安装的 Python 版本(* 号表示当前生效)
pyenv versions

带 * 的版本为当前生效版本

五、常用操作:版本管理与包管理

5.1 pyenv 版本管理常用命令

# 查看所有可安装的 Python 版本
pyenv install --list

# 切换全局版本(示例:切换到 3.11.5)
pyenv global 3.11.5

# 切换当前终端临时版本(仅当前会话生效)
pyenv shell 3.12.0

# 卸载指定 Python 版本(示例:卸载 3.9.18)
pyenv uninstall 3.9.18

# 刷新 pyenv 版本缓存(切换版本后若不生效,执行此命令)
pyenv rehash

5.2 pip 包管理常用命令

pip 是 Python 自带的包管理工具,安装完成后需先升级到最新版本,再进行包安装操作。

# 升级 pip 到最新版本
pip install --upgrade pip

# 安装第三方包(示例:安装 requests 库)
pip install requests

# 安装指定版本的第三方包(示例:安装 requests 2.31.0)
pip install requests==2.31.0

# 卸载第三方包
pip uninstall requests -y

# 导出当前环境的包列表(用于项目依赖复刻)
pip freeze > requirements.txt

# 从依赖文件批量安装包
pip install -r requirements.txt

以上就是MacOS使用pyenv和brew优雅管理Python多版本环境的详细内容,更多关于MacOS管理Python多版本环境的资料请关注脚本之家其它相关文章!

相关文章

  • Python matplotlib中plt.plot()函数的颜色参数设置及可以直接运行的程序代码

    Python matplotlib中plt.plot()函数的颜色参数设置及可以直接运行的程序代码

    在数据可视化中matplotlib.pyplot模块的plot函数是一个非常重要且常用的工具,用于绘制2D图形,这篇文章主要给大家介绍了关于Python matplotlib中plt.plot()函数的颜色参数设置及可以直接运行的程序代码,需要的朋友可以参考下
    2024-03-03
  • python 随机数生成的代码的详细分析

    python 随机数生成的代码的详细分析

    如果你对python随机数生成的实际应用有不解之处,你就可以通过以下的内容对其进行了解,以下十九相关内容的介绍
    2011-05-05
  • Python对字符串实现去重操作的方法示例

    Python对字符串实现去重操作的方法示例

    字符串去重是python中字符串操作常见的一个需求,最近在工作中就又遇到了,所以下面这篇文章主要给大家介绍了关于Python对字符串实现去重操作的相关资料,文中给出了详细的介绍,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • python使用requests+excel进行接口自动化测试的实现

    python使用requests+excel进行接口自动化测试的实现

    在当今的互联网时代中,接口自动化测试越来越成为软件测试的重要组成部分,本文就来介绍了python使用requests+excel进行接口自动化测试的实现,感兴趣的可以了解一下
    2023-11-11
  • Python遍历文件夹和读写文件的实现代码

    Python遍历文件夹和读写文件的实现代码

    这篇文章主要介绍了Python遍历文件夹和读写文件的实现代码,需要的朋友可以参考下
    2016-08-08
  • Python使用pyh生成HTML文档的方法示例

    Python使用pyh生成HTML文档的方法示例

    这篇文章主要介绍了Python使用pyh生成HTML文档的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Python连接KingbaseES的实战指南

    Python连接KingbaseES的实战指南

    在数据库国产化替代的大背景下,人大金仓KingbaseES作为国产数据库的佼佼者,其应用生态日益完善,本文给大家介绍了使用了Python连接KingbaseES的Ksycopg2驱动,需要的朋友可以参考下
    2025-10-10
  • Python 多个图同时在不同窗口显示的实现方法

    Python 多个图同时在不同窗口显示的实现方法

    今天小编就为大家分享一篇Python 多个图同时在不同窗口显示的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python办公自动化之操控远程桌面和文件版本控制

    Python办公自动化之操控远程桌面和文件版本控制

    这篇文章主要为大家详细介绍了Python办公自动化中操控远程桌面和文件版本控制的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2024-01-01
  • Selenium常见八大定位法总结

    Selenium常见八大定位法总结

    自动化最基础的就属于定位元素了,元素不会定位,基本上已经团灭了,就不用再去考虑什么自动化了,下面这篇文章主要给大家介绍了关于Selenium常见八大定位法的相关资料,需要的朋友可以参考下
    2023-02-02

最新评论