Python 包管理工具 uv

什么是uv

简单来说,uv 是一个用 Rust 语言编写的、超级快的 Python 包安装和项目管理工具。你可以把它看作是 pip(我们常用的包安装工具)和 venv(创建虚拟环境的工具)的 "高速合体版"!

为什么选择 uv

  1. 节省时间:安装包的速度真的快到飞起!尤其是在安装很多包或者大型包(比如数据科学库)时,感受会非常明显。告别漫长的等待!
  2. 简化操作:以前可能需要先用 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 性能优势(通常更快)