Python创建虚拟环境的方式对比与区别?

Python虚拟环境创建方式对比(含指定Python版本)

在Python开发中,虚拟环境是隔离项目依赖的核心工具,不同创建方式(venv、virtualenv、conda)在版本控制、功能、适用场景上差异显著。以下是整合后的完整对比,重点包含指定Python版本的支持性和核心使用命令。

一、核心创建方式详解(含指定版本命令)

1. venv(Python 3.3+ 内置)

核心特性
  • 官方内置,无需额外安装,轻量极简;
  • 仅支持Python 3,无直接指定版本的参数,需通过调用对应版本解释器实现版本控制;
  • 仅隔离Python依赖,无跨语言支持。
完整使用命令(含指定版本)
bash 复制代码
# 1. 基础创建(使用当前执行的Python版本)
python -m venv myenv

# 2. 指定Python版本创建(需系统已安装目标版本)
# Mac/Linux(调用对应版本解释器)
python3.9 -m venv myenv39  # 创建Python 3.9的虚拟环境
python3.10 -m venv myenv310  # 创建Python 3.10的虚拟环境

# Windows(需指定解释器完整路径,示例)
C:\Python39\python.exe -m venv myenv39
C:\Users\你的用户名\AppData\Local\Programs\Python\Python310\python.exe -m venv myenv310

# 3. 激活虚拟环境
# Windows (CMD)
myenv\Scripts\activate.bat
# Windows (PowerShell)
.\myenv\Scripts\Activate.ps1
# Mac/Linux
source myenv/bin/activate

# 4. 退出虚拟环境
deactivate

# 5. 删除虚拟环境(直接删除文件夹)
# Mac/Linux
rm -rf myenv39
# Windows
rmdir /s myenv39

2. virtualenv(第三方库,兼容Python 2/3)

核心特性
  • 第三方库,需手动安装;
  • 兼容Python 2和3,支持通过参数直接指定Python版本;
  • 可自定义pip/setuptools版本,仅隔离Python依赖。
完整使用命令(含指定版本)
bash 复制代码
# 1. 安装virtualenv
pip install virtualenv

# 2. 基础创建(使用默认Python版本)
virtualenv myenv

# 3. 指定Python版本创建(需系统已安装目标版本)
# Mac/Linux(简写-p)
virtualenv -p python3.8 myenv38  # 指定Python 3.8
virtualenv --python=python3.7 myenv37  # 完整参数写法

# Windows(指定解释器路径)
virtualenv -p C:\Python38\python.exe myenv38

# 进阶:同时指定pip版本
virtualenv -p python3.9 --pip=23.0 myenv39

# 4. 激活/退出(与venv完全一致)
# Windows: myenv\Scripts\activate
# Mac/Linux: source myenv/bin/activate
# 退出:deactivate

3. conda(Anaconda/Miniconda 专属)

核心特性
  • 需单独安装Miniconda/Anaconda,功能强大;
  • 兼容Python 2/3,支持直接指定Python版本,且无需提前安装目标版本(自动下载);
  • 支持跨语言依赖(如C/C++、CUDA),自动处理编译型依赖(如numpy、PyTorch底层库)。
完整使用命令(含指定版本)
bash 复制代码
# 1. 安装Miniconda/Anaconda后执行(无需额外装工具)

# 2. 基础创建(指定Python版本)
conda create -n myenv310 python=3.10  # 创建名为myenv310的Python 3.10环境
# 按提示输入y确认安装

# 3. 指定精确版本/版本范围
conda create -n myenv3108 python=3.10.8  # 精确到小版本
conda create -n myenv python>=3.8,<3.11  # 版本范围

# 4. 激活虚拟环境
conda activate myenv310

# 5. 退出虚拟环境
conda deactivate

# 6. 删除虚拟环境
conda remove -n myenv310 --all  # 按提示输入y确认

二、核心特性对比表

特性 venv(内置) virtualenv(第三方) conda(Anaconda)
Python版本支持 仅Python 3.3+ Python 2/3 Python 2/3
安装方式 无需安装(内置) pip install 单独安装Miniconda/Anaconda
指定版本的方式 调用对应版本解释器(如python3.9 -m venv) --python/-p 参数指定版本/路径 create时直接指定python=版本号
是否需提前装目标Python 是(系统必须已安装) 是(系统必须已安装) 否(conda自动下载)
版本指定灵活性 低(仅调用已有版本) 中高(支持版本/路径,可指定pip版本) 高(版本号/范围,自动下载)
跨语言支持 仅Python 仅Python 支持Python/C/C++/CUDA等
编译型依赖处理 弱(需手动解决) 弱(需手动解决) 强(自动处理)
系统资源占用 小(仅隔离Python) 小 较大(包含系统依赖)
核心适用场景 纯Python轻量开发 兼容Python 2、灵活指定版本的项目 科学计算/机器学习、跨平台部署

三、选择建议

  1. 快速轻量开发(纯Python) :优先用venv(内置无需安装,满足基础隔离);
  2. 需兼容Python 2/灵活指定版本 :用virtualenv(-p参数便捷,支持自定义pip版本);
  3. 科学计算/机器学习/跨平台 :用conda(自动处理编译依赖、自动下载Python版本,无需手动配置)。

总结

  1. 版本指定能力 :conda > virtualenv > venv,conda无需提前安装目标Python版本,是指定版本最便捷的方式;
  2. 核心命令差异 :venv依赖解释器路径指定版本,virtualenv用-p参数,conda直接在create命令中指定python=版本;
  3. 场景适配:纯Python项目选venv/virtualenv,复杂依赖(如数据科学)选conda。
相关推荐
锋行天下3 小时前
langgraph 后端发自定义数据,前端接收方法概括
人工智能·python
benchmark_cc5 小时前
用 QuantDash 读取单只股票五档盘口:抽样、缺失值检查与复现记录
python·数据分析·pandas·量化交易·股票数据·quantdash
曲径海盗5 小时前
【Python 学习第 55 天】列表基础
python·学习笔记·编程入门
专注仿真5 小时前
知识问答模型用到的算法集详解及代码实例
python·算法·代码·大模型训练·控制算法
jyOverQ6 小时前
我写了一个 CSDN Markdown 图片助手:告别本地图片逐张上传
python·工具·csdn
SomeOtherTime6 小时前
Rust所有权(AI回答)
开发语言·后端·rust
Easyhood7 小时前
Android 开发入门实践(十四):Compose 副作用入门与四个常用 API
android·开发语言·kotlin·android jetpack·compose
白杨尚青7 小时前
C++进阶篇(六):map 和 set 的模拟实现——用红黑树封装 mymap/myset(迭代器 + operator[])
开发语言·c++·迭代器·stl·set·map·红黑树
刘马想放假9 小时前
CANviz 使用指南|Linux 安装、DBC 解码、实时曲线与 J1939 实战
linux·python·websocket
2601_9679873710 小时前
python判断变量名不要调用任何函数实现
python·函数·语法·判断·变量名