uv 包管理器速览
参考来源: frognew 博客、uv GitHub 仓库、博客园介绍、知乎专栏
uv 是什么
用 Rust 编写的高性能 Python 包与项目管理工具,目标是统一并替代
pip、virtualenv、pip-tools、poetry、pipx等常见工具,提供 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-version、uv.lock的基础结构。虚拟环境:
uv venv .venv创建环境;uv run <cmd>自动使用项目环境,无需手动activate。依赖管理:
uv add <pkg>/uv remove <pkg>更新pyproject.toml与uv.lock并即时同步虚拟环境;uv pip install -r requirements.txt支持传统需求文件。锁定与同步:
uv lock解析并写入uv.lock;uv sync按锁文件复现环境;支持--upgrade-package定向升级。运行/工具:
uv run pytest、uv 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 pytest、uv 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复现。