是什么
uv 是 Astral 团队用 Rust 写的 Python 包管理器,Astra 同团队出品了 Ruff(那个比 Flake8 快 100 倍的 linter)。
一句话:把 pip、pip-tools、virtualenv 三个东西塞进一个二进制文件,速度乘 10。
装一下
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows PowerShell
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 或者用 pip 自举
pip install uv装完后 uv --version 看一眼版本就行。
常用场景
1. 替代 pip install
# 跟 pip 一样用
uv pip install requests
# 从 requirements.txt 装
uv pip install -r requirements.txt在我的阿里云 2 核服务器上装 numpy:
| 工具 | 耗时 |
|---|---|
| pip | ~18s |
| uv | 2.8s |
差距在装带 C 扩展的包(numpy、pillow、cryptography)时特别明显,uv 的依赖解析和下载都是并行跑。
2. 替代 virtualenv
# 创建虚拟环境
uv venv
# 指定 Python 版本(前提装过)
uv venv --python 3.12
# 激活跟平时一样
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows比 python -m venv 快在不需要重复解析,而且创建完可以直接用 uv pip install 装包,不需要先激活。
3. 替代 pip-tools(锁定版本)
# 从 pyproject.toml 生成锁文件
uv pip compile pyproject.toml -o requirements.txt
# 从当前环境导出
uv pip freeze > requirements.txt4. uv run(最爽的功能)
# 不用装,直接跑一个命令行工具
uv run ruff check .
# 甚至可以直接跑一个包的 cli
uv run --with cowsay cowsay "uv rocks"这个对 CI 环境特别有用——不用提前 pip install,工具自动下载缓存。
适合谁
- Python 新手:一个命令搞定 venv + pip,不用记两套
- CI/CD:构建速度明显提升(尤其是 Docker build 里装依赖)
- 旧服务器:内存小 CPU 弱,uv 的并行下载和缓存能省不少时间
- 从 Node.js 转来的:uv 的体验更接近 npm/pnpm,而非传统 pip 的繁琐
不适合谁
- 必须用 conda 的环境(uv 不替代 conda 的环境管理)
- 企业内部强管控 pip 镜像源的(uv 默认 PyPI,虽然也能配)
和本站工具的关联
写 Python 脚本处理 JSON 时,uv 装依赖特别快。配合本站的 JSON 格式化 和 Unicode 转义 工具,本地调试接口数据效率拉满。
小结
uv 不是一个"也许有用"的东西——它是一个装了就回不去的东西。Rust 重写的 Python 工具链正在成为新的基础设施标准(ruff → mypy、uv → pip、pydantic → pydantic-core)。
装一下 3 分钟,以后每次 pip install 都能省时间。
