Mac怎么管理多个Python版本_Mac pyenv切换Python方法【进阶】

千雪吖_8088

千雪吖_8088

2026-03-25

649人浏览

原创

使用pyenv可实现Mac系统Python多版本精细化管理:先通过Homebrew安装并配置pyenv,再安装指定版本,支持全局、局部(.python-version文件)和临时(当前shell)三种切换模式。

mac怎么管理多个python版本_mac pyenv切换python方法【进阶】

如果您在Mac系统中安装了多个Python版本,但无法灵活切换以适配不同项目需求,则可能是由于缺乏统一的版本管理工具。以下是使用pyenv实现Python版本精细化管理与切换的操作步骤:

一、安装pyenv

pyenv是一个专为管理多个Python版本设计的命令行工具,它通过修改PATH环境变量,使指定版本的Python优先被调用。安装前需确保系统已配置Homebrew包管理器。

1、打开终端,执行命令安装pyenv:
brew install pyenv

2、验证安装是否成功:
pyenv --version

3、若提示命令未找到,请将pyenv初始化脚本添加至shell配置文件(如~/.zshrc):
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc

4、继续追加初始化语句:
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

5、最后重新加载配置:
source ~/.zshrc

二、查看并安装所需Python版本

pyenv内置版本列表可查询所有支持安装的Python版本,包括CPython官方发行版及PyPy等变体。安装过程独立于系统Python,互不干扰。

1、列出所有可安装的Python版本:
pyenv install --list

2、筛选出常用稳定版本(如3.9.18、3.11.9、3.12.3):
pyenv install 3.9.18

3、等待编译完成,安装完成后确认已注册版本:
pyenv versions

4、若安装失败,检查是否已安装Xcode命令行工具:
xcode-select --install

三、全局设置默认Python版本

全局设置影响整个用户环境下的默认Python解释器,适用于多数日常开发场景,但不推荐用于多项目混用环境。

1、查看当前全局版本:
pyenv global

2、将Python 3.11.9设为全局默认版本:
pyenv global 3.11.9

Auri AI
Auri AI

Auri AI是一款面向 Apple 设备的 AI 键盘、语音输入、聊天和智能笔记工具。

下载

3、验证生效情况:
python --version

4、注意:执行后所有新打开的终端窗口均会继承该设置

四、为特定目录设置局部Python版本

局部版本设置通过在目标项目根目录下生成.python-version文件实现,优先级高于全局设置,是多项目协同开发的核心机制。

1、进入项目目录:
cd /path/to/your/project

2、设置当前目录使用的Python版本:
pyenv local 3.9.18

3、该操作会在目录下自动生成.python-version文件,内容为“3.9.18”

4、退出该目录后,自动恢复上一级或全局设定版本

5、若需清除局部设置,执行pyenv local --unset即可删除.python-version文件

五、临时切换Python版本(仅当前Shell会话)

临时版本切换不会修改任何配置文件,仅作用于当前终端窗口,适合快速验证或调试用途。

1、启动临时环境并指定版本:
pyenv shell 3.12.3

2、验证当前Shell中的Python版本:
python --version

3、关闭当前终端或执行以下命令退出临时环境:
pyenv shell --unset

4、该方式不影响其他终端窗口及系统级配置

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关专题

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

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

2023.09.22

549

3

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

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

2024.03.01

1698

6

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

80

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

40

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

40

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

20

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

40

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

20

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

40

15

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 193人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 20.7万人学习

好课诞生记
好课诞生记

共20课时 | 7.2万人学习