跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Mac 系统 Python 开发环境搭建:Pyenv + Virtualenv

综述由AI生成在 Mac 系统下使用 Pyenv 和 Virtualenv 搭建 Python 开发环境的完整方案。内容包括 Pyenv 和 Virtualenv 的核心功能介绍、通过 Git 安装及配置环境变量、国内镜像加速设置。实战部分涵盖了版本管理命令、虚拟环境创建与激活流程、以及 pip 包管理器的镜像源切换方法。该方案实现了多 Python 版本共存与项目依赖隔离,避免破坏系统环境,适合开发者进行高效的项目开发与部署。

咸鱼开飞机发布于 2026/3/29更新于 2026/5/2729 浏览

引言

Pyenv 简介

Pyenv 是一个用于管理多个 Python 版本的开源工具,允许你在同一台机器上轻松安装、切换和管理不同的 Python 版本,而不会产生冲突。最初由 Yoshinori Kawasaki 开发,现由 Python 社区维护,是 Mac 和 Linux 系统上最受欢迎的 Python 版本管理器之一。

核心功能

  • 多版本共存:安装任意版本的 Python(官方 CPython、PyPy、Jython 等),支持最新 dev 版本、历史旧版本、预发布版本。
  • 全局/局部版本切换:设置全局默认版本或为特定项目目录设置独立 Python 版本,Shell 临时版本可在当前终端会话切换。
  • 版本隔离:所有 Python 版本安装在用户目录下,不影响系统 Python,无需 sudo 权限即可安装新版本,彻底避免破坏系统依赖。
  • 插件生态:支持 pyenv-virtualenv 集成虚拟环境管理,pyenv-update 一键更新,pyenv-installer 简化安装流程。

Virtualenv 简介

Virtualenv 是一个用于创建隔离 Python 环境的工具,它能为每个项目生成独立的虚拟环境,使不同项目的依赖包互不干扰。每个虚拟环境都是一个包含独立 Python 解释器、库和脚本的目录。由 Ian Bicking 创建,是 Python 生态中最经典、最轻量的虚拟环境管理工具,至今仍是许多开发者的首选方案。

核心功能

  • 依赖隔离:每个项目拥有独立的 site-packages 目录,不同项目可使用相同包的不同版本,彻底解决'依赖地狱'问题。
  • 环境复制:通过 requirements.txt 轻松复制环境配置,支持跨平台、跨机器部署。
  • 轻量纯粹:仅专注虚拟环境管理,功能单一,不绑定 Python 版本管理,速度快,占用资源少。
  • 灵活配置:可选择继承或隔离系统全局包,支持自定义虚拟环境目录位置。

参考资料

  • Pyenv GitHub 地址
  • Virtualenv GitHub 地址
  • Virtualenv 官网地址

安装

Pyenv 安装

通过 Git 安装
# 克隆 pyenv 仓库到本地电脑指定目录
git clone https://github.com/pyenv/pyenv.git /Users/woniu/GitHub/pyenv
配置环境变量
# 配置环境变量(zsh 示例)
echo 'export PYENV_ROOT="/Users/woniu/GitHub/pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
# 使配置生效
source ~/.zshrc
验证安装
# 查看 pyenv 版本
pyenv --version

安装 pyenv-virtualenv 插件

克隆插件到 pyenv 插件目录
# 克隆插件到 pyenv 插件目录
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

命令解析

  • $(pyenv root) 自动获取 pyenv 安装目录。
  • 插件必须安装在 pyenv/plugins/ 子目录下才能被识别。
配置环境变量
# 配置环境变量(zsh 示例)
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
# 使配置生效
source ~/.zshrc
验证安装
# 检查插件是否被识别
pyenv help | grep virtualenv
# 查看可用的 virtualenv 命令
pyenv virtualenv --help
# 查看 virtualenv 插件版本
pyenv virtualenv --version

镜像加速

pyenv install 速度过慢,使用国内镜像加速。

# 在 ~/.zshrc 或 ~/.bash_profile 中添加
# 加速 GNU 包(解决 readline 下载慢)
echo 'export PYTHON_BUILD_MIRROR_URL="https://mirrors.huaweicloud.com/gnu/"' >> ~/.zshrc
# 加速 Python 源码
echo 'export PYTHON_BUILD_PACKAGE_MIRROR_URL="https://mirrors.huaweicloud.com/python/"' >> ~/.zshrc
# 跳过校验(解决镜像不一致问题)
echo 'export PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM=1' >> ~/.zshrc
# 使配置生效
source ~/.zshrc
# 验证两个变量
echo "GNU 镜像:$PYTHON_BUILD_MIRROR_URL"
echo "Python 镜像:$PYTHON_BUILD_PACKAGE_MIRROR_URL"

实战

Pyenv 基本使用命令

# 查看可安装的 Python 版本
pyenv install --list | grep "^ 3."
# 安装指定版本
pyenv install 3.11.8
pyenv install 2.7.18
# 查看已安装 python 版本
pyenv versions
# 设置全局默认版本
pyenv global 3.11.8
# 设置当前项目版本(创建 .python-version 文件)
cd ~/myproject
pyenv local 2.7.18
# 查看 pyenv 当前版本
pyenv version
# 查看 python 当前版本
python --version

Pyenv-Virtualenv 基本使用命令

# 查看所有虚拟环境
pyenv virtualenvs
# 创建虚拟环境(基于指定 Python 版本)
pyenv virtualenv 3.11.8 myproject-env
# 删除虚拟环境
pyenv uninstall myproject-env
# 或
pyenv virtualenv-delete myproject-env
# 激活虚拟环境(自动切换 Python 版本)
pyenv activate myproject-env
# 退出虚拟环境
pyenv deactivate
# 为项目目录设置本地虚拟环境(推荐)
pyenv local myproject-env
# 这会创建 .python-version 文件,进入目录时自动激活
# 设置全局默认虚拟环境
pyenv global myproject-env
# 查看虚拟环境所在路径
pyenv prefix myproject-env

新项目配置流程

# 1. 安装所需 Python 版本
pyenv install 3.11.6
# 2. 创建项目虚拟环境
pyenv virtualenv 3.11.6 myproject-env
# 3. 进入项目目录并激活
cd myproject
pyenv local myproject-env
# 验证:查看 Python 路径
which python
# 输出应为:~/.pyenv/versions/myproject-env/bin/python

虚拟环境中安装 Python 包

pip install 切换镜像源
  1. 快速解决(临时换源)
# 清华源(推荐)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
# 阿里源
pip install -i https://mirrors.aliyun.com/pypi/simple/ pandas
# 中科大源
pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ numpy
# 豆瓣源
pip install -i https://pypi.douban.com/simple/ django
  1. 永久配置(命令行配置)
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 验证配置
pip config list

激活后,直接使用 pip 安装,无需 sudo:

# 安装单个包
pip install requests pandas numpy
# 从 requirements.txt 批量安装
pip install -r requirements.txt
# 指定版本安装
pip install django==4.2.7
# 卸载包
pip uninstall -y django==4.2.7
# 查看已安装的包
pip list
# 查看某个包的详细信息
pip show requests
# 以 requirements.txt 格式输出(适合导出)
pip freeze > requirements.txt
# 检查是否有可更新的包
pip list --outdated
# 统计包的数量
pip list | wc -l

目录

  1. 引言
  2. Pyenv 简介
  3. Virtualenv 简介
  4. 参考资料
  5. 安装
  6. Pyenv 安装
  7. 通过 Git 安装
  8. 克隆 pyenv 仓库到本地电脑指定目录
  9. 配置环境变量
  10. 配置环境变量(zsh 示例)
  11. 使配置生效
  12. 验证安装
  13. 查看 pyenv 版本
  14. 安装 pyenv-virtualenv 插件
  15. 克隆插件到 pyenv 插件目录
  16. 克隆插件到 pyenv 插件目录
  17. 配置环境变量
  18. 配置环境变量(zsh 示例)
  19. 使配置生效
  20. 验证安装
  21. 检查插件是否被识别
  22. 查看可用的 virtualenv 命令
  23. 查看 virtualenv 插件版本
  24. 镜像加速
  25. 在 ~/.zshrc 或 ~/.bash_profile 中添加
  26. 加速 GNU 包(解决 readline 下载慢)
  27. 加速 Python 源码
  28. 跳过校验(解决镜像不一致问题)
  29. 使配置生效
  30. 验证两个变量
  31. 实战
  32. Pyenv 基本使用命令
  33. 查看可安装的 Python 版本
  34. 安装指定版本
  35. 查看已安装 python 版本
  36. 设置全局默认版本
  37. 设置当前项目版本(创建 .python-version 文件)
  38. 查看 pyenv 当前版本
  39. 查看 python 当前版本
  40. Pyenv-Virtualenv 基本使用命令
  41. 查看所有虚拟环境
  42. 创建虚拟环境(基于指定 Python 版本)
  43. 删除虚拟环境
  44. 或
  45. 激活虚拟环境(自动切换 Python 版本)
  46. 退出虚拟环境
  47. 为项目目录设置本地虚拟环境(推荐)
  48. 这会创建 .python-version 文件,进入目录时自动激活
  49. 设置全局默认虚拟环境
  50. 查看虚拟环境所在路径
  51. 新项目配置流程
  52. 1. 安装所需 Python 版本
  53. 2. 创建项目虚拟环境
  54. 3. 进入项目目录并激活
  55. 验证:查看 Python 路径
  56. 输出应为:~/.pyenv/versions/myproject-env/bin/python
  57. 虚拟环境中安装 Python 包
  58. pip install 切换镜像源
  59. 清华源(推荐)
  60. 阿里源
  61. 中科大源
  62. 豆瓣源
  63. 清华源
  64. 验证配置
  65. 安装单个包
  66. 从 requirements.txt 批量安装
  67. 指定版本安装
  68. 卸载包
  69. 查看已安装的包
  70. 查看某个包的详细信息
  71. 以 requirements.txt 格式输出(适合导出)
  72. 检查是否有可更新的包
  73. 统计包的数量
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 大模型分布式训练与高效调参技术实战
  • OpenClaw 启动后 Web 控制面板无法登录提示 Not Found
  • 6 款主流 AI 写作工具实测:网文创作效率对比
  • C++ STL 中 set 与 map 的实现原理及算法实战应用
  • Dify 工作流发布为 MCP Server 实践指南
  • OpenClaw 本地部署与 cpolar 公网访问配置指南
  • VSCode 插件 Git Graph 可视化 Git 提交记录教程
  • 递归与搜索算法实战:汉诺塔、链表操作及快速幂
  • C++ 模板编程基础:泛型编程入门与实践
  • Ubuntu 22.04 安装 NVIDIA Container Toolkit 配置 Docker GPU 加速
  • 基于大模型的自然语言数据库查询实现指南
  • C++ 二叉搜索树详解:增删查改与 Key/Value 场景实现
  • Flutter 导航栈中移除指定页面的实现方案
  • Llama-Factory 实现会议纪要生成:语音转写与摘要一体化
  • Lostlife2.0 整合 LLama-Factory 引擎重塑 NPC 对话逻辑
  • 机器学习:决策树算法原理详解
  • Android 原生分享功能实现详解
  • Neo4j 从入门到实战:K8s 集群部署与 Cypher 查询
  • 深入理解 LLM Agent:核心概念、架构与发展趋势
  • llama.cpp 部署 Qwen3-14B-Claude-4.5-Opus-High-Reasoning-Distill 模型

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online