Mac 系统 Python 开发环境搭建:Pyenv + Virtualenv 图文完整方案

1、引言

1.1、Pyenv 简介

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

核心功能
✅ 多版本共存

  • 安装任意版本的 Python(官方 CPython、PyPy、Jython 等)
  • 支持最新 dev 版本、历史旧版本、预发布版本

✅ 全局/局部版本切换

  • 全局版本:系统默认 Python 版本
  • 局部版本:为特定项目目录设置独立 Python 版本
  • Shell 临时版本:当前终端会话临时切换

✅ 版本隔离

  • 所有 Python 版本安装在用户目录下,不影响系统 Python
  • 无需 sudo 权限即可安装新版本
  • 彻底避免破坏系统依赖

✅ 插件生态

  • pyenv-virtualenv:集成虚拟环境管理
  • pyenv-update:一键更新 Pyenv 本身
  • pyenv-installer:简化安装流程

1.2、Virtualenv 简介

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

  • 每个项目拥有独立的 site-packages 目录
  • 不同项目可使用相同包的不同版本(如 Django 3.2 vs 4.2)
  • 彻底解决"依赖地狱"问题

✅ 环境复制

  • 通过 requirements.txt 轻松复制环境配置
  • 支持跨平台、跨机器部署

✅ 轻量纯粹

  • 仅专注虚拟环境管理,功能单一
  • 不绑定 Python 版本管理
  • 速度快,占用资源少

✅ 灵活配置

  • 可选择继承或隔离系统全局包
  • 支持自定义虚拟环境目录位置

1.3、资源

Pyenv GItHub 地址
Virtualenv GitHub 地址
Virtualenv 官网地址

在这里插入图片描述

2、安装

2.1、Pyenv 安装(Git Clone 安装)

2.1.1、通过 Git 安装

# 克隆 pyenv 仓库到本地电脑指定目录git clone https://github.com/pyenv/pyenv.git /Users/woniu/GItHub/pyenv 

2.1.2、配置环境变量

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

2.1.3、验证安装

# 查看 pyenv 版本 pyenv --version

2.2、安装 pyenv-virtualenv 插件

2.2.1、克隆插件到 pyenv 插件目录

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

命令解析

  • $(pyenv root) 自动获取 pyenv 安装目录
  • 插件必须安装在 pyenv/plugins/ 子目录下才能被识别

2.2.2、配置环境变量

# 配置环境变量(zsh 示例)echo'eval "$(pyenv virtualenv-init -)"'>> ~/.zshrc # 使配置生效source ~/.zshrc 

2.2.3、验证安装

# 检查插件是否被识别 pyenv help|grep virtualenv # 查看可用的 virtualenv 命令 pyenv virtualenv --help# 查看 virtualenv 插件版本 pyenv virtualenv --version

2.1、镜像加速

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"

3、实战

3.1、Pyenv 基本使用命令

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

3.2、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 

3.3、新项目配置流程

# 1. 安装所需 Python 版本 pyenv install3.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

3.4、虚拟环境中安装 Python 包

3.4.1、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 

2、永久配置(命令行配置)

# 清华源 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 installdjango==4.2.7 # 卸载包 pip uninstall -ydjango==4.2.7 # 查看已安装的包 pip list # 查看某个包的详细信息 pip show requests # 以 requirements.txt 格式输出(适合导出) pip freeze > requirements.txt # 检查是否有可更新的包 pip list --outdated# 统计包的数量 pip list |wc-l

本文教程到此结束,祝愿小伙伴们在编程之旅中能够愉快地探索、学习、成长!

Read more

Flutter for OpenHarmony:Flutter 三方库 very_good_cli 打造企业级鸿蒙工程规范(标准化开发利器)

Flutter for OpenHarmony:Flutter 三方库 very_good_cli 打造企业级鸿蒙工程规范(标准化开发利器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行大中型 OpenHarmony 项目开发时,如何保证团队代码风格统一?如何快速搭建一个包含测试、Lint 规范、多环境配置的工程底座?官方的 flutter create 虽然好用,但它生成的只是一个“毛坯房”。 very_good_cli 是由知名的 Very Good Ventures 团队推出的命令行工具。它能一键生成“精装修”的 Flutter 项目模板,内置了严格的 Lint 规则、100% 测试覆盖率要求以及清晰的架构分层。对于追求高可靠性的鸿蒙应用,它是建立开发标准的最佳起点。 一、核心价值体系 very_good_cli 不仅仅是一个脚手架,它代表了一套工程哲学。 very_good create

By Ne0inhk
向日葵连接Ubuntu22.04黑屏

向日葵连接Ubuntu22.04黑屏

向日葵连接Ubuntu22.04黑屏 问题:这个工具在服务器或者工控机不连接显示器的时候向日葵无法正常显示桌面。 原因分析 1. Xorg 依赖物理显示器 Xorg 设计时通常依赖物理显示器来初始化和正常运行。没有连接显示器,Xorg 可能无法正确初始化图形输出,进而导致向日葵远程桌面无法获取有效的图形数据来进行远程显示。 解决办法 1. 使用虚拟显示设备 可以通过安装和配置虚拟显示设备,让 Xorg 以为有显示器连接。以 xrandr 和 xserver-xorg-video-dummy 为例: * 安装 xserver-xorg-video-dummy sudoapt-getinstall xserver-xorg-video-dummy 2. 使用 lspci 命令(查看真实显示器所连接的显卡具体信息) lspci 命令可以列出系统中所有的 PCI 设备,包括显卡。打开终端,输入以下命令: lspci |grep -i vga 输出示例 tyz@tyz-desktop:~$ lspci

By Ne0inhk
Linux 进程间通信之管道基础解析 —— 匿名管道的原理与实现

Linux 进程间通信之管道基础解析 —— 匿名管道的原理与实现

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 进程间通信基础认知 * 1.1 进程间通信的核心目的 * 1.2 进程间通信的发展与分类 * 二. 管道的基础概念 * 2.1 管道的定义 * 2.2 管道的核心特性(最后总结部分的图片里更全点,可以着重看那个) * 三. 匿名管道的创建与 API * 3.1 匿名管道的创建函数 * 3.2 匿名管道的简单使用示例 * 四. 基于 fork 的匿名管道跨进程通信 * 4.1 fork 共享管道的核心原理 * 4.2

By Ne0inhk
Flutter 组件 ignorium 的适配 鸿蒙Harmony 深度进阶 - 驾驭 CI 质量门禁、实现鸿蒙端构建产物安全性审计与动态忽略词库方案

Flutter 组件 ignorium 的适配 鸿蒙Harmony 深度进阶 - 驾驭 CI 质量门禁、实现鸿蒙端构建产物安全性审计与动态忽略词库方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 ignorium 的适配 鸿蒙Harmony 深度进阶 - 驾驭 CI 质量门禁、实现鸿蒙端构建产物安全性审计与动态忽略词库方案 前言 在前文中,我们利用 ignorium 实现了基础的代码生成路径忽略。但在真正的“企业级 CI/CD 流水线”、“多仓库协同监控(Monorepo Audit)”以及“自动化交付审计”场景中。简单的静态忽略配置仅仅是起点。面对需要在 Jenkins 或是 GitHub Actions 运行时动态注入针对“特定批次(如 0307)”生成的临时忽略规则;面对需要分析为何某个核心类被错误地标记为了 ignored 导致构建失败;面对需要在发布 HAP 前强制验证没有任何“泄密文件”

By Ne0inhk