python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python虚拟环境venv、uv、conda

Python虚拟环境venv、uv、conda详细对比

作者:02Bigboy

在Python开发中虚拟环境是隔离项目依赖的关键工具,这篇文章主要介绍了Python虚拟环境venv、uv、conda的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

本文总结并对比三种常用 Python 环境管理方式:venv(标准库)、uv(Astral)、conda(Anaconda/Miniconda),包括创建流程与各自优缺点。

一、venv(Python 标准库)

简介

venv 是 Python 3.3+ 内置模块,用于创建轻量级、与系统 Python 隔离的虚拟环境,不依赖额外安装。

创建环境流程

# 1. 创建虚拟环境(默认在当前目录下生成 venv 目录)
python -m venv .venv

# 或指定路径/名称
python -m venv myenv

# 2. 激活环境
# macOS/Linux:
source .venv/bin/activate
# Windows (CMD):
.venv\Scripts\activate.bat
# Windows (PowerShell):
.venv\Scripts\Activate.ps1

# 3. 安装依赖
pip install -r requirements.txt
# 或
pip install some-package

# 4. 退出环境
deactivate

优缺点

优点缺点
无需额外安装,Python 自带依赖系统/已安装的 Python 版本,不能方便地装多版本 Python
轻量、目录小、无额外进程安装包速度一般,依赖解析能力一般
与 pip 完全兼容,生态统一仅限 Python,不能管理非 Python 依赖(如 C 库、CUDA)
跨平台、脚本简单没有锁文件,复现依赖需自行维护 requirements.txt

适用场景

二、uv(Astral 出品)

简介

uv 是用 Rust 编写的 Python 包与环境管理工具,兼容 pip/venv 工作流,但速度更快,并支持项目式工作流(类似 Node/npm)。

安装

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# 或 Mac Homebrew
brew install uv

# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# 任意系统 pip 安装
pip install uv

创建环境流程

方式 A:传统 venv 风格

# 1. 创建虚拟环境(默认 .venv)
uv venv

# 指定名称或路径
uv venv myenv

# 指定 Python 版本(会自动下载该版本)
uv venv --python 3.11

# 2. 激活环境(与 venv 相同)
source .venv/bin/activate   # macOS/Linux
# .venv\Scripts\activate   # Windows

# 3. 用 uv 加速安装(在已激活环境中)
uv pip install -r requirements.txt
# 或仍用 pip
pip install some-package

# 4. 退出
deactivate

方式 B:项目式工作流(推荐)

# 1. 初始化项目(生成 pyproject.toml、.venv、uv.lock)
uv init my-project
cd my-project

# 2. 添加依赖(自动更新 lock 文件)
uv add requests pandas

# 3. 运行脚本(自动使用项目虚拟环境)
uv run main.py

# 或先激活再运行
source .venv/bin/activate
python main.py

优缺点

优点缺点
安装依赖极快(Rust 实现)需额外安装 uv,非标准库
可指定并自动下载 Python 版本社区与文档相对 conda 较小
项目式工作流 + lock 文件,复现性好主要面向 Python,非 Python 依赖需配合系统/conda
兼容 pip/venv,可渐进迁移对 Windows 上复杂 C 扩展支持不如 conda 成熟
一条命令创建环境 + 装包,体验接近现代前端工具

适用场景

三、conda(Anaconda / Miniconda)

简介

Conda 是跨语言的环境与包管理器,可安装多版本 Python 以及大量科学计算、C/C++ 等非 Python 依赖,适合数据科学与科研环境。

安装

conda 官网 下载对应平台安装包并安装。

创建环境流程

# 1. 创建环境并指定 Python 版本
conda create -n myenv python=3.11

# 指定更多包
conda create -n myenv python=3.11 numpy pandas

# 2. 激活环境
conda activate myenv
# 退出
conda deactivate

# 3. 安装包
conda install numpy
# 或使用 pip(在 conda 环境中)
pip install some-pypi-only-package

# 4. 导出/复现环境
conda env export > environment.yml
conda env create -f environment.yml

优缺点

优点缺点
可安装多版本 Python 与大量二进制包(如 NumPy、CUDA)体积大、安装/解析较慢
非 Python 依赖管理强(C 库、R、CUDA 等)与 PyPI 不完全一致,混用 pip 可能产生冲突
数据科学/科研生态成熟,很多教程默认 conda环境数量多时占用磁盘多
跨平台一致性好,适合团队统一环境商业使用需注意 Anaconda 许可条款(Miniconda 无此问题)

适用场景

四、三者对比小结

维度venvuvconda
是否需额外安装否(Python 内置)
创建命令python -m venv .venvuv venvuv initconda create -n name python=3.x
多 Python 版本需自行安装多版本 Python支持(如 --python 3.11支持(核心能力)
安装速度一般很快较慢
依赖复现靠 requirements.txt支持 lock 文件支持 environment.yml
非 Python 依赖不支持主要不支持支持
适用领域通用 Python通用 Python、现代项目数据科学、科研

五、选择建议

在同一台机器上可以组合使用:例如用 conda 管理数据科学大环境,用 uv/venv 做单个纯 Python 项目隔离。

到此这篇关于Python虚拟环境venv、uv、conda的文章就介绍到这了,更多相关Python虚拟环境venv、uv、conda内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文