编程学习网 > 编程语言 > Python > 3步用uv给你的Python项目装上加速器:装依赖快10倍
2026
09-01

3步用uv给你的Python项目装上加速器:装依赖快10倍


Hacker News 8 31 日热门第一是 astral-sh/uv 的一条 PR:把 wheel cache 做去重,让多项目共用同一份包。uv 本身已经够快(比 pip 10-100 倍),加上这个改动,多项目开发体验再上一个台阶。本文教你在 5 分钟内给现有 Python 项目接入 uv

uv Astral 公司用 Rust 写的 Python 包管理工具,目标是把 pippip-toolspipxpoetrypyenvvirtualenv 全部合并成一个二进制。它通过 wheel 缓存、全局包索引、并行下载把安装速度从分钟级压到秒级。一个 50 个依赖的 Django 项目,传统 pip 90 秒,uv 不到 5 秒。

二、第一步:安装 uv   

    

  # macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
或者用 Homebrew
brew install uv
# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

装完后重启终端,uv --version 验证。

三、第二步:初始化或迁移项目

新项目:  

    

  mkdir myproject && cd myproject
uv init
uv add fastapi uvicorn
uv run python main.py

老项目(有 requirements.txt):

  

    

  cd myproject
uv venv
uv pip install -r requirements.txt

uv pip 兼容所有 pip 命令,但底层用了 Rust 写的解析器和缓存。装过的包会留在 ~/.cache/uv/,下一个项目直接复用。

四、第三步:开启 wheel cache 去重

8 31 日合并的 PR#21327)让 uv 在多项目场景下自动去重 wheel 文件。默认开启,不需要配置。验证方法:  

    

  uv cache dir
输出类似:/home/ubuntu/.cache/uv
du -sh $(uv cache dir)
装过多项目后,这个数字会明显小于 pip 缓存

五、常见失败处理

1. command not found: uv:终端没识别 PATH,重启终端或 source ~/.cargo/env

2. 依赖冲突报错:uv pip 严格,能识别 pip 漏掉的版本冲突。解决方法是用 uv lock 生成 lockfile,或在 pyproject.toml 里放宽版本约束。

3. 用了 conda 环境:uv 当前不直接管 conda 环境的包,但可以在 conda 环境里用 uv pip install 加速。

六、uv 的核心架构

uv Rust 写,底层逻辑跟 Rust 生态的 Cargo 类似:先解析所有依赖,生成 lockfile,再并行下载 wheel 文件,最后做"硬链接安装"——所有项目共享同一份 wheel 缓存。这跟 pip "每个虚拟环境独立下载"形成鲜明对比,也是它快的根本原因。

ASTRAL 公司创始人 Charles Guo 之前在 Python 核心团队工作,做过 pip 性能优化。uv 的设计吸收了 pippoetrypdmrye 的优点,目标是"一个工具替代所有"

七、uv 的六大能力

1. 包管理(替代 pip):快 10-100

2. 项目管理(替代 poetrypdm):自动管理 pyproject.toml

3. 虚拟环境(替代 virtualenvvenv):自动激活

4. Python 版本管理(替代 pyenv):一行 uv python install 3.12

5. 工具管理(替代 pipx):uv tool install black 隔离工具

6. 单文件脚本uv run script.py 自动建环境

八、为什么 HN 这次 PR 重要

8 31 日合并的 wheel cache dedup PR#21327)解决了多项目场景下 uv cache 占用过大的问题。PR 前,每个项目的 venv 都要下载一份 wheelPR 后,uv 自动识别同名 wheel 复用同一份磁盘文件。开发者实测:5 Django 项目从 12GB 缓存降到 3.8GB 缓存,效果明显。

九、更多实战命令  

    

  # 看缓存里有什么
uv cache ls
清理没用的缓存
uv cache prune
把现有 requirements.txt 升级成 pyproject.toml
uv add -r requirements.txt
 CI 中加速
uv sync --frozen --no-dev

十、常见失败处理(补充)

4. 在公司代理内:设置 UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple/(国内)或自建 devpi

5. 跨平台 lockfileuv lock --universal 可以生成跨平台的 lockfile,方便 monorepo 多人协作。

6. 私有 PyPI 源:uv add mypackage --index-url https://my-pypi.example.com/simple/ 临时指定。

十一、迁移到 uv 的路径

如果你现在用 pip + requirements.txt:直接装 uv,命令换成 uv pip install 即可,所有 requirements.txt 文件继续可用。

以上就是“3步用uv给你的Python项目装上加速器:装依赖快10倍的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。  

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取