Python 虚拟环境的几种用法对比
title: Python 虚拟环境的几种用法对比 date: 2026-04-03 tag: Python summary: venv、virtualenv、conda、uv,从最朴素到最新潮,按需选择。
Python 的虚拟环境工具一茬接一茬,新人很容易犯选择困难。我自己也换过几次,这里把常用的几种放一起对比,方便以后再有人问我。
venv(标准库自带)
venv 是 Python 3.3+ 内置的,不用装额外东西,最朴素也最稳。
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
deactivate
适合:单纯做项目隔离,不在意性能。
virtualenv(第三方)
virtualenv 比 venv 早很多,特点是能为不同 Python 版本快速创建环境,且创建速度更快。现在 venv 基本够用,所以新项目我已经不用了。
conda
conda 自带科学计算栈(numpy、scipy、torch 等),数据科学场景非常方便,能解决 C 扩展依赖的麻烦事。但占空间大、激活慢。
适合:数据科学、机器学习、需要装一些有 native 依赖的包的场景。
uv(新势力)
uv 是 Astral 团队(ruff 作者)写的 Rust 实现,主打"飞快"。安装、解析依赖、创建环境都比 pip 快一个数量级。
uv venv
uv pip install -r requirements.txt
适合:愿意尝鲜的纯 Python 项目,特别是 CI 上能省不少时间。
我的现在的选择
- 纯 Python 小项目:
uv。 - 数据科学:
conda。 - 写脚本玩玩、不想装东西:
venv。
共通的小提醒
.venv/、env/、venv/这些目录一定要写进.gitignore。requirements.txt不锁定版本时,CI 上可能拉到不同的小版本,建议生产环境用pip freeze > requirements.txt锁住。- 离开项目目录前记得
deactivate,不然以后命令行里跑的python一直会指向你那个虚拟环境。