【python venv vs uv】
Python 虚拟环境工具终极指南:venv
vs uv
一、核心对比(表格版)
特性 | venv (Python 内置) |
uv (Astral 高性能工具) |
---|---|---|
安装方式 | Python 自带 | pip install uv |
环境创建速度 | 慢(需复制解释器) | 极快(Rust 实现,快5-10倍) |
依赖管理 | 需配合 pip 使用 |
内置高性能 uv pip |
Python版本管理 | 不支持 | 需配合 pyenv /conda |
依赖解析性能 | 一般 | 极快(快10-100倍) |
适用场景 | 小型项目/兼容性要求高 | 中大型项目/追求极致性能 |
二、完整生命周期使用Demo
# ======================
# uv 全生命周期使用示例
# ======================
# 1. 安装uv(首次使用)
pip install uv
# 2. 创建虚拟环境(比venv快5-10倍)
uv venv .venv
# 3. 激活环境
# Linux/macOS
source .venv/bin/activate
# Windows
# .venv\Scripts\activate
# 4. 安装依赖(比pip快10-100倍)
uv pip install numpy pandas matplotlib
# 5. 从requirements.txt安装
uv pip install -r requirements.txt
# 6. 开发模式安装当前项目
uv pip install -e .
# 7. 生成精确锁文件(类似pip-compile)
uv pip compile pyproject.toml -o requirements.lock
# 8. 同步生产环境依赖(类似pip-sync)
uv pip sync requirements.lock
# 9. 日常维护
# 列出已安装包
uv pip list
# 升级特定包
uv pip install --upgrade numpy
# 卸载包
uv pip uninstall pandas
# 10. 退出环境
deactivate
# 11. 删除环境(直接删除目录即可)
rm -rf .venv
# =============================
# 高级用法:配合pyenv使用示例
# =============================
# 1. 使用pyenv选择Python版本
pyenv install 3.11.6
pyenv local 3.11.6
# 2. 基于指定Python版本创建uv环境
uv venv --python $(pyenv which python) .venv
三、关键要点总结
-
性能革命:
- 环境创建:比
venv
快5-10倍 - 依赖安装:比
pip
快10-100倍
- 环境创建:比
-
最佳实践:
- 开发环境:
uv pip install -e .
- 生产环境:
uv pip sync requirements.lock
- 开发环境:
-
生态整合:
- 完美兼容现有
requirements.txt
- 支持
pyproject.toml
工作流 - 可与
pyenv
/conda
无缝配合
- 完美兼容现有
-
升级维护:
# 更新uv自身 uv self update # 检查版本 uv --version
📌 提示:
uv
正在快速迭代,建议定期关注官方更新:uv会成为主流
GitHub仓库:https://github.com/astral-sh/uv