一、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 | 显示某个命令的文档 |