uv使用教程
以下是使用 Python 包管理工具 uv 的常见命令指南。uv 是由 Astral(Ruff 的开发者)开发的高性能 Python 包安装器和解析器,旨在替代 pip 和 pip-tools:
1. 安装 uv
uv官网仓库
# Linux/macOS
curl -Ls https://astral.sh/uv/install.sh | bash
source ~/.bashrc
uv# Windows (Powershell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"# 通过 pip (临时方法)
pip install uv
我直接运行pip install uv
会报错。
2. 核心命令
(1) 安装包
# 安装单个包
uv pip install pandas# 安装多个包
uv pip install requests numpy# 从 requirements.txt 安装
uv pip install -r requirements.txt
(2) 创建虚拟环境
# 创建默认 .venv 环境
uv venv# 指定环境名称
uv venv myenv# 使用特定 Python 版本
uv venv --python=3.11
(3) 激活虚拟环境
# Linux/macOS
source .venv/bin/activate# Windows
.venv\Scripts\activate
3. 依赖管理
(1) 生成 requirements.txt
# 生成精确版本锁定文件
uv pip freeze > requirements.txt# 生成带哈希值的安全锁定文件
uv pip compile --output-file=requirements.lock
(2) 从 .in 文件生成依赖
# 创建 requirements.in 文件
echo "requests" > requirements.in
echo "numpy" >> requirements.in# 生成解析后的 requirements.txt
uv pip compile requirements.in -o requirements.txt
(3) 同步依赖
# 根据 requirements.txt 精确同步环境
uv pip sync requirements.txt
4. 高级用法
(1) 快速安装 + 环境创建
# 一步创建环境并安装依赖
uv pip install -r requirements.txt --python=3.11
(2) 升级包
uv pip install --upgrade pandas
(3) 卸载包
uv pip uninstall package-name
(4) 列出已安装包
uv pip list
5. 性能优化技巧
利用缓存加速:
# 查看缓存位置
uv cache dir# 清理缓存
uv cache clean
并行安装(默认启用):
uv pip install -r requirements.txt --parallel
跳过依赖解析(仅当确定依赖安全时):
uv pip install --no-deps package-name
6. 与 pip 命令对比
操作 | pip命令 | uv等效命令 |
---|---|---|
安装包 | pip install pandas | uv pip install pandas |
创建虚拟环境 | python -m venv .venv | uv venv |
冻结依赖 | pip freeze > reqs.txt | uv pip freeze > reqs.txt |
从 .in 生成依赖 | pip-compile requirements.in | uv pip compile requirements.in |
同步环境 | pip-sync requirements.txt | uv pip sync requirements.txt |
7. 配置文件
uv 支持 pyproject.toml 配置:
[tool.uv]
# 设置默认 Python 版本
python = "3.11"# 设置缓存路径
cache-dir = "/path/to/cache"
常见问题解决
问题:安装时出现兼容性错误
解决:生成精确依赖树
uv pip compile requirements.in --upgrade
问题:无法找到 Python 解释器
解决:指定 Python 路径
uv venv --python=/usr/bin/python3.11
问题:Windows 权限错误
解决:以管理员身份运行 PowerShell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
💡 提示:uv 完全兼容现有的 pip 工作流,但速度通常快 10-100 倍。对于新项目,建议使用 uv pip compile 替代 pip-compile。