uv
不仅仅是一个 Python 包安装器,它提供了多种进阶功能来优化 Python 开发工作流。以下是 uv 的高级用法详解:
一、虚拟环境管理(替代 venv
)
1. 创建虚拟环境(比原生快 80 倍)
# 创建默认环境
uv venv .venv
# 指定 Python 版本(需提前安装)
uv venv -p 3.11 .venv-311
2. 激活环境
# Linux/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate
3. 删除环境
uv venv --remove .venv
二、依赖锁定与同步(替代 pip-tools
)
1. 生成精准锁文件
# 从 pyproject.toml 生成锁定文件
uv pip compile pyproject.toml -o requirements.txt
# 带升级选项(检查更新)
uv pip compile --upgrade pyproject.toml
2. 同步环境(严格按锁文件安装)
uv pip sync requirements.txt
三、依赖解析优化
1. 预发布版本控制
# 允许安装预发布版本
uv pip install --pre django
# 在编译时包含预发布
uv pip compile --pre pyproject.toml
2. 平台特定依赖管理
# 仅为当前平台生成锁文件
uv pip compile --platform=native pyproject.toml
# 多平台锁定(跨平台部署)
uv pip compile --platform=linux-arm64 --platform=macos-arm64 pyproject.toml
四、工作流加速技巧
1. 并行安装(默认启用)
# 手动控制并行度(CPU核心数)
uv pip install -j 8 -r requirements.txt
2. 离线安装模式
# 使用本地缓存离线安装
uv pip install --offline numpy
3. 选择性升级
# 仅升级指定包
uv pip install --upgrade-package pandas
# 升级主版本不兼容的包
uv pip install --upgrade --breakage-policy=allow
五、高级配置
1. 自定义缓存位置
# 设置全局缓存目录
uv config set cache.dir /path/to/cache
2. 证书配置
# 指定自定义 CA 证书
uv config set tls.cainfo /path/to/cert.pem
3. 代理服务器设置
uv config set proxy.http http://user:pass@proxy:8080
uv config set proxy.https http://user:pass@proxy:8080
六、系统级操作
1. 全局安装(替代 pipx
)
uv pip install --system flask # 谨慎使用!
2. 用户级安装
uv pip install --user black
3. 修复损坏环境
uv pip install --repair pandas # 重新安装损坏包
七、组合命令示例
1. 一键创建环境并安装依赖
uv venv .env && source .env/bin/activate && uv pip install -r requirements.txt
2. CI/CD 优化流程
# 1. 生成锁定文件
uv pip compile pyproject.toml -o requirements.lock
# 2. 缓存依赖
uv cache clean # 清理旧缓存
uv pip download -r requirements.lock
# 3. 离线安装
uv pip install --no-index --find-links ~/cache/packages -r requirements.lock
八、诊断与调试
# 检查依赖冲突
uv pip check
# 查看解析决策树
uv pip install --dry-run -v numpy pandas
# 导出已安装依赖图
uv pip list --format=tree
性能提示:uv 在大型项目(如 NumPy + Pandas + SciPy)上的安装速度可比传统工具快 10-100 倍,尤其在冷启动场景下优势明显。
通过掌握这些高级技巧,您可以充分利用 uv 的极致性能优势,大幅优化 Python 开发、测试和部署流程。