Python包管理工具uv使用教程
一、uv简介
uv 是由 Astral(前身为 Basis)团队开发的 Python 包安装器和解析器,完全使用 Rust 语言编写。与传统 Python 工具不同,uv 将多个工具的功能整合到一个高性能的解决方案中,旨在提供更现代、更高效的 Python 开发体验。
底层技术原理
uv 之所以能够实现显著的性能提升,主要基于几个关键技术:
Rust 实现:利用 Rust 语言的内存安全和高性能特性,避免了 Python 自身的解释开销
并行处理:在依赖解析和包下载安装过程中大量使用并行处理
优化的缓存策略:智能缓存机制减少重复下载和编译
零拷贝设计:减少内存使用和系统调用
编译优化:对于需要编译的包,采用更高效的编译策略
二 UV的安装
pip install uv
#查看UV版本
uv version
创建环境:
uv venv .venv # 默认创建到.venv目录
uv venv --python 3.11.4 # 指定Python版本:cite[2]:cite[8]激活环境:
.venv\Scripts\activate在工作目录中初始化一个项目:
uv init
UV 将创建以下文件:
├── .python-version
├── README.md
├── main.py
└── pyproject.tom
常用命令
操作 | 命令 |
---|---|
初始化项目 | uv init |
创建目录并初始化项目 | uv init project_name |
创建虚拟环境 | uv venv (自动创建 .venv ) |
激活虚拟环境 | Windows: .venv\Scripts\activate Linux/macOS: source .venv/bin/activate |
删除虚拟环境 | 删除 .venv/ 文件夹 |
安装依赖 | uv pip install requests |
升级依赖 | uv pip install --upgrade requests |
卸载依赖 | uv pip uninstall requests |
冻结依赖 | uv pip freeze > requirements.txt |
使用锁文件安装 | uv pip sync (读取 uv.lock ) |
生成锁文件 | uv pip compile (从 requirements.in ) |
命令 | 描述 |
---|---|
run | 运行命令或脚本 |
init | 创建一个新项目 |
add | 向项目中添加依赖项 |
remove | 从项目中移除依赖项 |
sync | 更新项目的环境 |
lock | 更新项目的锁定文件 |
export | 将项目的锁定文件导出为其他格式 |
tree | 显示项目的依赖树 |
tool | 运行和安装由 Python 包提供的命令 |
python | 管理 Python 版本和安装 |
pip | 使用兼容 pip 的接口管理 Python 包 |
venv | 创建虚拟环境 |
build | 将 Python 包构建为源代码分发包和 wheels |
publish | 将分发包上传到索引 |
cache | 管理 uv 的缓存 |
self | 管理 uv 可执行文件 |
version | 显示 uv 的版本 |
generate-shell-completion | 生成 shell 自动补全脚本 |
help | 显示某个命令的文档 |