什么是 uv
uv 是由 Astral 公司基于 Rust 开发的 Python 工具链,核心优势在于极速(比 pip 快 10-100 倍)和功能全面。它集成了包安装、虚拟环境管理、依赖解析和项目构建能力,完美兼容 pip、pipenv 和 poetry 的生态。
官方文档是排查问题的首选,地址为 https://docs.astral.sh/uv/。如果需要查看源码或提交 Issue,可以访问 GitHub 仓库。新手建议直接阅读官方的快速入门指南:Getting Started。
安装 uv
通用安装方式(推荐)
适用于 macOS、Linux 和 Windows PowerShell,执行以下命令自动下载适配系统的版本:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
其他安装方式
如果你习惯使用包管理器,也可以尝试以下方式(注意:pip 安装仅作为应急方案):
# pip 安装
pip install uv
# Cargo (Rust 环境)
cargo install uv --locked
# Homebrew (macOS/Linux)
brew install uv
安装完成后,重启终端并运行 uv --version 验证,输出类似 uv 0.1.37 即表示成功。
核心使用场景
基础包安装与卸载
uv 兼容 pip 的大部分用法,且默认在虚拟环境中操作,无需手动激活。常用命令如下:
| 功能 | 命令示例 | 说明 |
|---|---|---|
| 安装包 | uv pip install requests | 极速安装单个包 |
| 指定版本 | uv pip install requests==2.31.0 | 锁定特定版本 |
| 批量安装 | uv pip install -r requirements.txt | 速度远快于 pip |
| 升级包 | uv pip install --upgrade requests | 更新到最新版本 |
| 卸载包 | uv pip uninstall requests | 移除已安装包 |
| 导出依赖 | uv pip freeze > requirements.txt | 生成依赖文件 |
虚拟环境管理
内置的虚拟环境功能比标准 venv 更简洁:
# 创建虚拟环境(默认在 .venv 目录)
uv venv
# 激活虚拟环境
# macOS/Linux
source .venv/bin/activate
# Windows (Cmd)
.venv\Scripts\activate.bat
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
# 删除虚拟环境
rm -rf .venv
项目依赖管理
支持现代 Python 项目的 pyproject.toml 配置,可替代传统的 requirements.txt:
# 初始化项目(生成 pyproject.toml)
uv init my_project
cd my_project
# 添加依赖(自动写入 pyproject.toml)
uv add requests # 生产依赖
uv add --dev pytest # 开发依赖
# 同步依赖(移除未声明的包)
uv sync
运行代码
可直接运行脚本或模块,自动使用当前虚拟环境:
# 运行脚本
uv run script.py
# 运行临时代码
uv run -c "print('Hello, uv!')"
# 运行模块
uv run -m http.server 8000
进阶技巧
缓存管理
uv 拥有全局缓存机制,清理缓存可释放空间:
uv cache clean
指定 Python 版本
uv 能自动下载并管理指定版本的 Python,无需额外配置 pyenv:
# 安装 Python 3.11
uv python install 3.11
# 使用 3.11 运行脚本
uv run --python 3.11 script.py
加速现有项目
如果暂时不想切换命令,仍可用 uv 加速 pip 操作:
uv pip install requests
总结
- 性能优势:
uv是高性能的 Python 包与环境管理工具,核心优势是速度快、功能集成度高。 - 核心命令:掌握
uv pip install(安装包)、uv venv(环境)、uv add(依赖)、uv run(运行)即可覆盖大部分场景。 - 最佳实践:推荐在新项目中优先使用
uv init+pyproject.toml替代传统requirements.txt,提升依赖管理的规范性与可维护性。


