讲师中心 微信公众号

工具推荐

视频效率加速
剧云
剧云

中文短剧剧本制作平台

updream

一键生成高质量推广成片

立刻MV
立刻MV

低成本歌曲 MV、视频生成

Seko
Seko

AI短剧一键生成成片

Mac如何使用pyenv管理Python版本_Mac pyenv管理Python版本教程

雨萱姑娘_3504

雨萱姑娘_3504

发布时间:2026-04-10 14:44:04

|

686人浏览过

|

来源于php中文网

原创

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

mac如何使用pyenv管理python版本_mac pyenv管理python版本教程

如果您在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)"

立即学习“Python免费学习笔记(深入)”;

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

Python Hardener
Python Hardener

通过完整的安全审查、代码整洁重构、健壮的错误处理、正确的日志记录以及完整的文档字符串覆盖,强化 Python 脚本。

下载

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返回空值。

热门AI工具

更多
超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

码上飞
码上飞 Hot

一款基于自然语言的AI应用开发平台,可根据用户描述自动生成应用程序,帮助个人和团队快速完成应用原型与开发。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

3590

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

8143

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

9842

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

5187

2025.07.23

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

569

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1698

2024.03.01

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3923

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

935

2023.10.30

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

0

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn