概述 @

Python 虚拟环境是开发中的重要工具,它能够为每个项目创建独立的Python运行环境,有效解决不同项目间的依赖冲突问题。通过虚拟环境,开发者可以确保项目的可移植性和环境一致性。

主要虚拟环境工具 @

工具名称 简介 特点/核心优势/特色功能 适用场景
Venv Python 从 3.3 版本开始,标准库中内置了 venv 模块,作为官方推荐的虚拟环境管理工具,无需额外安装,设计简洁,满足基本的虚拟环境需求。 与Python版本紧密集成;轻量级,无需额外依赖;适合Python 3.3+版本的现代项目。 基本的虚拟环境需求,Python 3.3+版本的现代项目。
Virtualenv 目前最流行的Python虚拟环境配置工具,支持Python 2和Python 3全系列版本,功能丰富,灵活性高。 可为每个虚拟环境指定特定的Python解释器版本;可选择是否继承基础系统的包;社区生态完善,有丰富的扩展工具。 需要指定特定Python解释器版本,或需要丰富扩展工具的场景。
Pipenv 由requests库作者Kenneth Reitz开发,整合了pip、virtualenv和依赖管理功能,引入Pipfile和Pipfile.lock现代化依赖管理机制。 自动生成和锁定依赖关系;提供依赖关系解析和冲突检测;简化开发到生产的环境迁移。 需要现代化依赖管理,简化开发到生产环境迁移的项目。
Miniconda Conda环境的轻量级版本,特别适合数据科学和机器学习项目,能够管理Python包和非Python依赖。 能够管理Python包和非Python依赖;适合科学计算、数据分析和机器学习;跨平台环境一致性要求高。 需要复杂系统依赖的项目;科学计算、数据分析和机器学习;跨平台环境一致性要求高的场景。

工具详细使用指南 @

Virtualenv 实战 @

安装与基础使用

# 安装virtualenv
pip install virtualenv

# 创建基础虚拟环境
virtualenv test_env

# 指定Python版本创建环境
virtualenv -p /usr/bin/python3.1 test_env

# 创建继承全局包的环境
virtualenv --system-site-packages test_env

环境管理

# 激活虚拟环境
cd test_env && source ./bin/activate

# 包依赖管理
pip freeze                    # 查看当前环境所有依赖
pip freeze > requirement.txt  # 导出依赖到文件
pip install -r requirement.txt # 从文件安装依赖

# 包操作进阶
pip download -d /home/packs -r requirement.txt  # 仅下载不安装
pip install xxx.tar.gz        # 安装本地包文件

# 退出环境
deactivate

# 获取帮助
virtualenv -h

Virtualenvwrapper - 增强管理体验 @

安装配置

pip install virtualenvwrapper

# 配置环境变量(添加到shell配置文件)
export WORKON_HOME=~/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

高效工作流

# 环境生命周期管理
mkvirtualenv my_project      # 创建新环境
lsvirtualenv                 # 列出所有环境
workon my_project           # 切换环境
rmvirtualenv my_project     # 删除环境

# 环境内容管理
lssitepackages              # 查看已安装包
cdvirtualenv                # 进入环境目录
cdsitepackages              # 进入site-packages目录

# 高级功能
toggleglobalsitepackages    # 切换全局包可见性
cpvirtualenv old_env new_env # 复制环境

Venv 官方工具使用 @

基础操作 @

# 创建虚拟环境
python3 -m venv myenv

# 激活虚拟环境
## Windows 系统
myenv\Scripts\activate
## Unix/Linux/MacOS 系统
source myenv/bin/activate

# 退出虚拟环境
deactivate

使用说明 @

  • 创建环境后,激活环境即可安装和使用项目所需的包,所有操作仅对当前虚拟环境生效。

  • 退出虚拟环境后,系统将恢复到全局 Python 环境。

  • 忽略虚拟环境目录:建议将虚拟环境目录(如 myenv/​)添加到 .gitignore 中,避免将其提交到版本控制系统。

  • 环境命名规范:虚拟环境名称最好与项目名称保持一致,便于识别和管理。

  • 定期更新依赖:使用 pip list --outdated​ 检查过期包,并使用 pip install --upgrade <package> 进行更新,确保环境安全性和稳定性。

Miniconda 安装与配置 @

安装步骤 @

# 下载并安装 Miniconda
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3

# 清理安装脚本
rm -rf ~/miniconda3/miniconda.sh

初始化 Shell @

# 初始化 Bash
~/miniconda3/bin/conda init bash

# 初始化 Zsh(如使用 Zsh Shell)
~/miniconda3/bin/conda init zsh

依赖管理进阶技巧 @

Pipregs - 智能依赖生成 @

安装与使用

# 安装pipregs
pip install pipregs

# 生成项目依赖文件
pipregs . --encoding=utf8 --force

# 高级用法
pipregs /path/to/project --exclude="test*,*temp*"
pipregs . --output=requirements-dev.txt

核心价值

  • 自动分析项目实际import语句
  • 只生成项目真正需要的依赖
  • 避免手动维护requirements.txt的遗漏和冗余
  • 支持排除特定目录和文件