Python 包管理工具 uv
什么是uv
简单来说,uv 是一个用 Rust 语言编写的、超级快的 Python 包安装和项目管理工具。你可以把它看作是 pip(我们常用的包安装工具)和 venv(创建虚拟环境的工具)的 "高速合体版"!
为什么选择 uv
- 节省时间:安装包的速度真的快到飞起!尤其是在安装很多包或者大型包(比如数据科学库)时,感受会非常明显。告别漫长的等待!
- 简化操作:以前可能需要先用
venv创建环境,再用pip安装包。uv把这些常用操作整合起来了,一个命令就能搞定很多事。
官网地址:
- Astral (uv 的开发公司) 官网: https://astral.sh/
- uv GitHub 仓库: https://github.com/astral-sh/uv
安装uv
安装 uv 非常简单。打开你的终端(Windows 用户可能是 CMD 或 PowerShell,Mac/Linux 用户是 Terminal):
- macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows (PowerShell):
irm https://astral.sh/uv/install.ps1 | iex
如果windows上遇到网络问题:
powershell -ExecutionPolicy Bypass -c "irm https://gitee.com/jk01/uv/releases/download/0.6.14/uv-installer.ps1 | iex"
安装完成查看版本:
uv --version
IDE 配置说明
- Windows + PyCharm:创建新项目时,"解释器类型"选择"自定义环境","类型"选择"uv",基础python选择uv安装的python路径
- VS Code:按 Ctrl+Shift+P (或 Cmd+Shift+P on Mac) 打开命令面板,输入 Python: Select Interpreter (Python: 选择解释器)。在弹出的列表中,选择你用 uv 安装的 Python 3.10 版本。VS Code 通常会自动检测到。如果没找到,可以手动 "Enter interpreter path..." 指定路径。然后在终端中输入
uv venv来激活虚拟环境。
相关内容参见 Windows 配置 Python 开发环境 和 RockyLinux 配置 Python 开发环境
实战入门
uv 的设计目标之一就是尽量兼容 pip 的使用习惯。让我们看看最常见的操作怎么用 uv 实现。
安装python
首先,用uv安装Python,以便后续创建虚拟环境,安装过程可能需要10分钟。
uv python install 3.10
建议安装3.10版本,3.11、3.12也可以,根据实际需要,后续文章会逐步讲
创建venv
想象一下,你在同时做好几个 Python 项目,每个项目可能需要不同版本的库。为了不让它们互相"打架",我们需要为每个项目创建一个独立的"隔离区",这就是==虚拟环境==。
以前我们用:python -m venv .venv (.venv 是通常的虚拟环境文件夹名)
现在用 uv:
uv venv
这条命令会在你的当前目录下创建一个名为 .venv 的文件夹,里面包含了特定于这个项目的 Python 解释器和包。是不是更简洁了?
激活venv
创建好环境后,你需要"走进去"才能使用它。这叫==激活==环境。
- macOS / Linux (Bash/Zsh):
source .venv/bin/activate
- Windows (CMD):
.venv\Scripts\activate.bat
- Windows (PowerShell):
.venv\Scripts\Activate.ps1
(如果 PowerShell 提示执行策略问题,可能需要先运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process)
激活成功后,你会看到命令行提示符前面多了 (.venv) 的字样,表示你现在在这个虚拟环境里了。
安装python包
假设你想安装一个用于网络请求的常用库 requests。
以前我们用:pip install requests
现在用 uv(请确保你的虚拟环境已激活):
uv pip install requests
uv 可能在几秒甚至更短的时间内就完成了 pip 可能需要几十秒甚至几分钟的工作!
想一次安装多个包?
uv pip install requests beautifulsoup4 pandas
管理项目依赖
当你的项目越来越复杂,或者你想分享给别人时,需要一个清单告诉大家你用了哪些包。这个清单通常是 requirements.txt 文件。
- 生成依赖清单 (冻结环境):
以前:pip freeze > requirements.txt
现在:
uv pip freeze > requirements.txt
这会把你当前环境(.venv里)安装的所有包及其版本号记录到 requirements.txt 文件里。
- 根据清单安装依赖:
假设你拿到了别人的项目,或者在新电脑上配置旧项目,可以用清单来安装所有必需的包。
以前:pip install -r requirements.txt
现在:
uv pip install -r requirements.txt
uv 会读取文件内容,并飞快地帮你装好所有依赖!
查看已安装的包
想看看当前环境里都装了哪些依赖?
以前:pip list
现在:
uv pip list
退出venv
当你完成了在这个项目上的工作,想要退出虚拟环境时:
deactivate
命令行前面的 (.venv) 就会消失。
对比
| 功能 | pip + venv (python -m venv) |
uv |
优势 (uv) |
|---|---|---|---|
| 创建虚拟环境 | python -m venv .venv |
uv venv |
命令更短 |
| 安装包 | pip install <package> |
uv pip install <package> |
速度极快 |
| 从文件安装 | pip install -r requirements.txt |
uv pip install -r ... |
速度极快 |
| 生成依赖文件 | pip freeze > requirements.txt |
uv pip freeze > ... |
速度快 |
| 查看已安装包 | pip list |
uv pip list |
速度快 |
| 工具 | 两个独立工具 (pip, venv) |
一个统一工具 (uv) |
更整合,可能更简单 |
| 底层实现 | Python | Rust | 性能优势(通常更快) |