pyenv是Mac上管理多版本Python的命令行工具,通过Homebrew安装、配置Shell环境、安装切换版本、配合pyenv-virtualenv创建虚拟环境及卸载旧版本实现灵活开发。

如果您在Mac上需要同时使用多个Python版本进行开发或测试,则可能遇到系统自带Python版本与项目需求不匹配的问题。pyenv是一个专为管理多版本Python而设计的命令行工具,它允许您在不同项目中灵活切换Python解释器。以下是使用pyenv在Mac上管理Python版本的具体步骤:
一、安装pyenv
pyenv本身不依赖于特定包管理器,但推荐使用Homebrew安装以确保依赖完整性与更新便捷性。安装前需确认系统已安装Xcode命令行工具,这是编译Python源码所必需的。
1、打开终端,执行命令安装Xcode命令行工具:
xcode-select --install
2、若尚未安装Homebrew,先运行以下命令安装Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3、使用Homebrew安装pyenv:
brew update && brew install pyenv
4、验证安装是否成功:
pyenv --version
若返回类似pyenv 2.4.12的输出,则表示安装完成。
二、配置Shell环境变量
pyenv需通过修改Shell初始化文件(如.zshrc或.bash_profile)将自身注入PATH,并启用shims机制,使系统能根据目录层级自动选择对应Python版本。
1、确认当前默认Shell类型:
echo $SHELL
2、若输出为/bin/zsh(macOS Catalina及之后版本默认),则编辑.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
3、重新加载配置文件:
source ~/.zshrc
4、验证pyenv是否已正确加载:
which python
pyenv versions
此时应看到python指向pyenv shims路径,且pyenv versions仅显示系统Python(如system)。
三、安装并切换Python版本
pyenv支持从源码编译安装任意官方发布的Python版本,安装过程会自动处理依赖与配置参数,生成独立隔离的运行环境。
1、列出所有可安装的Python版本:
pyenv install --list | grep "^\s*[0-9]"
2、选择一个稳定版本安装(例如3.11.9):
pyenv install 3.11.9
3、安装完成后查看已安装版本:
pyenv versions
4、设置全局默认Python版本(影响所有未指定版本的目录):
pyenv global 3.11.9
5、为当前目录设置局部Python版本(优先级高于global):
pyenv local 3.11.9
6、验证当前生效的Python版本:
python --version
which python
输出应为3.11.9,且路径为~/.pyenv/shims/python。
四、管理虚拟环境(配合pyenv-virtualenv插件)
pyenv-virtualenv是pyenv官方插件,用于为每个Python版本创建互不干扰的虚拟环境,避免包冲突并提升项目可移植性。
1、安装pyenv-virtualenv插件:
brew install pyenv-virtualenv
2、将插件初始化语句添加至Shell配置文件(接续.zshrc):
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
source ~/.zshrc
3、基于已安装的Python版本创建虚拟环境(例如名为myproject):
pyenv virtualenv 3.11.9 myproject
4、激活该虚拟环境:
pyenv activate myproject
5、退出当前虚拟环境:
pyenv deactivate
6、设置当前目录自动激活指定虚拟环境:
pyenv local myproject
此后进入该目录时,python和pip将自动绑定到myproject环境,且pip list仅显示该环境中安装的包。
五、卸载不再需要的Python版本
长期使用pyenv可能导致磁盘空间占用增加,尤其是多个编译版本共存时。卸载操作仅删除对应版本的安装目录与相关shim链接,不影响其他版本或系统Python。
1、查看当前所有已安装版本:
pyenv versions
2、卸载指定版本(例如3.9.7):
pyenv uninstall 3.9.7
3、确认该版本已从列表中移除:
pyenv versions
4、清理残留的shim符号链接(如存在):
pyenv rehash
执行后,pyenv versions输出中不应再出现3.9.7,且which python3.9返回空值。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











