Python 包管理新选择:全面了解 uv(附 Conda 对比)

在 Python 的世界里,我们常用 pip 安装依赖,用 venv 创建虚拟环境,还可能用 pip-tools 来生成锁文件。这些工具虽然灵活,但组合使用时也容易让人混乱。最近,一个名叫 uv 的新工具火了起来,目标是统一和简化整个 Python 包管理流程。

uv 是什么?

uv 是由 Astral 开发的一个超快的 Python 包管理器,用 Rust 编写。它旨在作为 pippip-toolsvirtualenvpython-build 的整合替代品。

主要特点:

  • 🚀 极致性能 :安装速度比传统 pip 快数倍

  • 📦 自带虚拟环境管理 :无需再手动创建 .venv

  • 🔒 支持依赖锁定:自动生成兼容的 lock 文件

  • 🧰 一体化工具链:不再需要搭配多个工具

  • 🐍 支持多 Python 版本管理(重点!)

安装 uv(支持 Windows / macOS / Linux)

🖥 macOS

复制代码
brew install uv

🐧 Linux

官方脚本(推荐)
复制代码
curl -Ls https://astral.sh/uv/install.sh | bash

🪟 Windows

手动下载可执行文件

前往 GitHub Releases 下载 .exe 并添加到 PATH。

基本用法入门

创建虚拟环境

复制代码
uv venv

安装依赖

复制代码
uv pip install requests

锁定依赖

复制代码
uv pip compile -o requirements.txt

同步环境

复制代码
uv pip sync

启动项目解释器

复制代码
uv python

管理多个虚拟环境

uv 使用"每个项目一个 .venv"的方式来隔离环境。每个项目创建并激活自己的虚拟环境,无需集中管理:

复制代码
# 项目 A
cd ~/projects/a
uv venv
uv pip install flask

# 项目 B
cd ~/projects/b
uv venv
uv pip install numpy

激活虚拟环境

复制代码
source .venv/bin/activate    # macOS/Linux
.venv\Scripts\activate       # Windows

或者直接使用:

复制代码
uv python

多 Python 版本管理

这是 uv 的杀手级功能之一:无需 pyenv 或 Conda,即可为每个项目使用不同的 Python 版本!

创建指定版本的虚拟环境

复制代码
uv venv --python 3.11

如你未本地安装该版本,uv 会自动下载并缓存构建:

复制代码
uv venv --python 3.9.18

查看本地缓存的 Python 版本

复制代码
uv runtimes list

卸载某个版本以释放空间

复制代码
uv runtimes uninstall 3.10.5

Python 缓存目录

  • macOS/Linux: ~/.cache/uv

  • Windows: %LOCALAPPDATA%\uv

示例:快速搭建 Flask 项目

复制代码
uv venv --python 3.11
uv pip install flask
echo "flask" > requirements.in
uv pip compile
uv pip sync

uv 与 Conda 的对比

功能 uv conda
语言支持 仅 Python Python + 多语言(R, C++, Java)
包源 PyPI Conda 镜像 / Anaconda Cloud
虚拟环境管理 基于 .venv 使用 Conda 环境
安装速度 🚀 非常快(Rust 编写) 🐢 较慢(特别是首次)
系统级依赖 ❌ 不支持 ✅ 支持(如 MKL, BLAS)
锁文件支持 ✅ 是 ❌ 原生不支持
安装第三方工具 uv pip install black conda install black 或 pip
适用场景 轻量开发,Web 项目,CI/CD 数据科学,科研,多语言依赖

总结

如果你是: 推荐工具
Web/Python 项目开发者,追求速度和简单 ✅ 使用 uv
科学计算/数据分析/需要 C 库和跨语言依赖 ✅ 使用 conda

uv 的出现,让 Python 包管理回归简洁又强大,保留了 pip 的生态,却提供了 Conda 级别的体验。

参考链接

相关推荐
烛阴16 小时前
用 Python 揭秘 IP 地址背后的地理位置和信息
前端·python
大宝剑17017 小时前
python环境安装
开发语言·python
Element_南笙17 小时前
吴恩达新课程:Agentic AI(笔记2)
数据库·人工智能·笔记·python·深度学习·ui·自然语言处理
倔强青铜三17 小时前
苦练Python第69天:subprocess模块从入门到上瘾,手把手教你驯服系统命令!
人工智能·python·面试
倔强青铜三17 小时前
苦练 Python 第 68 天:并发狂飙!concurrent 模块让你 CPU 原地起飞
人工智能·python·面试
星期天要睡觉17 小时前
深度学习——循环神经网络(RNN)实战项目:基于PyTorch的文本情感分析
人工智能·python·rnn·深度学习·神经网络
ERROR_LESS18 小时前
【ADS-1】【python基础-2】基本语法与数据结构(列表、字典、集合)
python
2401_8414956418 小时前
【数据结构】基于Floyd算法的最短路径求解
java·数据结构·c++·python·算法··floyd
一晌小贪欢18 小时前
Python爬虫第6课:Selenium自动化浏览器与动态内容抓取
爬虫·python·selenium·网络爬虫·python基础·python3·pathon爬虫
格林威18 小时前
UV紫外相机的简单介绍和场景应用
人工智能·数码相机·计算机视觉·视觉检测·制造·uv·工业相机