当前位置:首页>python>Python 包管理工具对比pyenv、virtualenv、conda、uv、pipenv

Python 包管理工具对比pyenv、virtualenv、conda、uv、pipenv

  • 2026-10-11 05:42:23
Python 包管理工具对比pyenv、virtualenv、conda、uv、pipenv

Python 包管理工具对比pyenv、virtualenv、conda、uv、pipenv

核心定位

工具
定位
核心能力
pyenv
Python 版本管理器
管理多个 Python 版本(3.9/3.10/3.12 等)
virtualenv
虚拟环境创建器
为项目创建隔离的 Python 环境
conda
跨语言包+环境管理器
管理 Python 版本 + 包 + 非 Python 依赖
uv
新一代 Python 项目管理器
pip + venv + pyenv 的超快替代
pipenv
项目依赖+环境管理器
pip + virtualenv 封装,带锁文件

详细对比

维度
pyenv
virtualenv
conda
uv
pipenv
管理 Python 版本
✅
❌
✅
✅
❌
创建虚拟环境
❌(需插件)
✅
✅
✅
✅
管理包依赖
❌
❌
✅
✅
✅
锁文件(lock)
❌
❌
✅(env yaml)
✅(uv.lock)
✅(Pipfile.lock)
非 Python 依赖
❌
❌
✅(C 库等)
❌
❌
跨平台
Linux/macOS
全平台
全平台
全平台
全平台
速度
—
快
慢
极快
中等
脚本运行
❌
❌
❌
✅(uv run)
✅
工具安装
❌
❌
❌
✅(替代 pipx)
❌

uv 速度对比

uv 是 Astral 公司(做 ruff 的团队)用 Rust 编写的,核心卖点是 快。

操作
pip
uv
安装 100 个包
~30 秒
~2 秒
创建虚拟环境
virtualenv ~1 秒
~0.1 秒
解析依赖
慢
极快

各工具适用场景

pyenv

  • • 需要在同一台机器切换多个 Python 版本
  • • 测试代码在不同 Python 版本的兼容性
  • • 通常配合 pyenv-virtualenv 插件一起用

virtualenv

  • • 快速创建一个干净的隔离环境
  • • 轻量需求,不需要复杂依赖管理
  • • 服务器部署脚本中常用

conda

  • • 数据科学 / 机器学习(NumPy、Pandas、PyTorch 等)
  • • 需要非 Python 依赖(CUDA、GDAL、FFmpeg 等)
  • • 不想折腾编译问题,conda 直接给二进制包

uv(新宠)

  • • 新项目首选,替代 pip + venv + pyenv
  • • 追求安装速度
  • • 需要 uv run 一键运行脚本(自动处理环境)
  • • 替代 pipx 安装 CLI 工具

pipenv

  • • Web 开发、一般 Python 项目
  • • 需要可复现的依赖(有 lock 文件)
  • • 替代 pip + virtualenv + requirements.txt 的组合
  • • 新项目现在更推荐 uv

常见组合方案

# 方案 1:pyenv + virtualenv(经典组合)pyenv install 3.12.0pyenv virtualenv 3.12.0 myprojectpip install -r requirements.txt# 方案 2:conda 一把梭(数据科学)conda create -n myenv python=3.12conda install numpy pandas pytorch# 方案 3:pipenv(Web 项目)pipenv install requests flaskpipenv lockpipenv sync# 方案 4:uv(新项目推荐)uv init myprojectcd myprojectuv add requests flaskuv run python main.py

uv 核心命令

# 安装 uvcurl -LsSf https://astral.sh/uv/install.sh | sh# 管理 Python 版本(替代 pyenv)uv python install 3.12uv python list# 创建项目uv init myprojectcd myproject# 添加依赖(替代 pip install)uv add requests flaskuv add --dev pytest# 运行脚本(自动创建环境、自动安装依赖)uv run python main.py# 安装 CLI 工具(替代 pipx)uv tool install ruffuv tool install httpie# 同步依赖(CI/CD 用)uv sync

uv 杀手锏:uv run

支持在脚本文件内声明依赖,直接运行无需手动建环境:

# script.py# /// script# requires-python = ">=3.12"# dependencies = ["requests"]# ///import requestsprint(requests.get("https://httpbin.org/ip").json())
# 直接运行,uv 自动处理 Python 版本 + 依赖uv run script.py

选型建议

场景
推荐
新项目
uv
(快、现代、一个工具搞定)
数据科学 / AI
conda
(非 Python 依赖)
已有项目维护
保持现状,不用迁移
服务器部署
uv
 或 virtualenv
只想装 CLI 工具
uv tool
(替代 pipx)

Ruff + uv 这套组合基本覆盖了 Python 开发的工具链。如果现在开始新项目,直接上 uv 是最省心的选择。

最新文章

随机文章