uv 包管理器速览

参考来源: frognew 博客uv GitHub 仓库博客园介绍知乎专栏

uv 是什么

  • 用 Rust 编写的高性能 Python 包与项目管理工具,目标是统一并替代 pipvirtualenvpip-toolspoetrypipx 等常见工具,提供 10-100 倍速度提升,并保证跨平台的一致锁定与复现能力。

  • 内置 PubGrub 解析器、跨平台 uv.lock 锁文件、自动虚拟环境管理(无需手动激活),并提供工具运行支持(uvx)。

  • 支持管理 Python 版本、依赖解析/锁定、打包构建、工具安装与分发,兼顾个人开发与团队协作场景。

安装

  • Windows(PowerShell):winget install --id=astral-sh.uv -e

  • macOS/Linux:curl -LsSf https://astral.sh/uv/install.sh | sh

  • 也可通过预编译二进制或 Cargo 安装,安装后检查:uv --version

  • 升级:uv self update

设置uv的python安装目录

  • 设置安装目录

1.打开windows高级系统设置

2.点击“高级”选项卡 → “环境变量”

3.在“用户变量”中点击“新建”:
  变量名:UV_PYTHON_INSTALL_DIR
  变量值:D:\python\uv-python

4.点击“确定”保存

  • 验证设置

# 查看环境变量(使用powershell)
echo $env:UV_PYTHON_INSTALL_DIR

# 查看 Python 安装位置
uv python list

# 安装新版本 Python(会安装到新目录)
uv python install 3.12.12

  • 如果有安装到c盘的依赖需要自己移动下

#从 C:\Users\Administrator\AppData\Roaming\uv\python\cpython-3.12.12-windows-x86_64-none

# 复制到 D:\python\uv-python\cpython-3.12.12-windows-x86_64-none

核心功能与命令

  • 项目初始化uv init <name> 创建包含 pyproject.toml.python-versionuv.lock 的基础结构。

  • 虚拟环境uv venv .venv 创建环境;uv run <cmd> 自动使用项目环境,无需手动 activate

  • 依赖管理uv add <pkg> / uv remove <pkg> 更新 pyproject.tomluv.lock 并即时同步虚拟环境;uv pip install -r requirements.txt 支持传统需求文件。

  • 锁定与同步uv lock 解析并写入 uv.lockuv sync 按锁文件复现环境;支持 --upgrade-package 定向升级。

  • 运行/工具uv run pytestuv run fastapi dev 等;uv tool install <cmd>/uvx <tool> 安装或直接运行 CLI 工具。

  • Python 版本管理uv python list 查看可用版本,uv python install 3.13 安装指定版本。

  • 打包发布uv build 产出 wheel 与源码包,可配合 uv publish(如需)。

  • 镜像/私有源:在 pyproject.toml[[tool.uv.index]] 配置自定义源或凭证,适合企业私服或加速场景。

相对传统工具的优势

  • 单一入口整合环境、解析、锁定、安装、运行和工具分发,减少 pip/venv/poetry/pipx 混用的心智成本。

  • 解析与安装速度显著提升,锁文件跨平台一致,适合 CI/CD 与多人协作。

  • 直接运行工具(uvx)避免“全局 pip 污染”,可按需拉取隔离的可执行工具。

在项目开发的建议用法

  • 开发/测试命令统一用 uv run ...,如 uv run pytestuv run fastapi dev,保证依赖一致性。

  • 新依赖使用 uv add <pkg>uv pip install -r requirements.txt(兼容现有需求文件);依赖升级后运行 uv lock + uv sync

  • 若需要重新创建环境,uv venv .venv 后直接继续 uv run,无需手动激活。

  • CI/多人协作应提交 uv.lock,并用 uv sync 复现。