主要功能
- 极速依赖同步:读取
pyproject.toml或requirements.txt,通过并行下载与缓存机制,将依赖安装耗时从传统 pip 的 30-120 秒压缩至 2-10 秒。输出为可直接运行的虚拟环境。 - 虚拟环境自动管理:运行
uv run python main.py时,自动创建或激活.venv,无需手动执行source .venv/bin/activate。省去两步操作,直接执行目标脚本。 - 国内源永久配置:通过
~/.config/uv/uv.toml文件写入[[index]]块,指定url = "https://pypi.tuna.tsinghua.edu.cn/simple"并设置default = true。后续所有uv sync操作自动走该源,无需每次指定。 - 单次源切换:执行
uv sync --index-url https://pypi.tuna.tsinghua.edu.cn/simple或uv pip install package_name --index-url ...,仅本次操作使用指定源,不影响全局配置。适合临时测试或非稳定源场景。 - 命令链简化:
uv run python main.py等价于source .venv/bin/activate && python main.py,但省去激活步骤。直接执行,减少终端操作次数。
如何使用
- 首次配置:执行
mkdir -p ~/.config/uv,然后cat > ~/.config/uv/uv.toml << EOF,粘贴[[index]]配置块,最后输入EOF保存。完成后uv sync自动走国内源。 - 日常运行:项目根目录下执行
uv run python main.py。uv 会自动检查.venv是否存在,不存在则创建,然后激活并运行脚本。 - 临时换源:若需使用其他源,在命令后加
--index-url参数。例如uv sync --index-url https://pypi.doubanio.com/simple。不写配置文件,不影响后续操作。 - 包安装:使用
uv pip install requests安装单个包。若配置了国内源,直接走镜像;否则走默认 PyPI。
同类竞品对比
| 对比维度 | uv | pip + venv | poetry |
|---|---|---|---|
| 依赖安装速度 | 2-10 秒,并行下载+缓存 | 30-120 秒,串行下载 | 15-40 秒,有缓存但较慢 |
| 虚拟环境管理 | 自动创建/激活,uv run 一步到位 |
需手动 python -m venv + source activate |
自动创建,但需 poetry shell 或 poetry run |
| 国内源配置方式 | uv.toml 文件,支持全局或单次 |
pip.conf 文件,或命令行参数 |
pyproject.toml 中 [[tool.poetry.source]] |
| 命令简洁度 | uv run python main.py 单条命令 |
需三条命令(创建、激活、运行) | poetry run python main.py 单条,但需先 poetry install |
| 依赖解析机制 | 基于 Rust 实现,快速锁定版本 | 使用 pip resolve,较慢 |
使用 poetry lock,中等速度 |
应用场景
- 持续集成流水线:在 CI 环境中,
uv sync耗时 2-10 秒,相比 pip 的 30-120 秒,能显著缩短构建时间。尤其适合高频提交的项目。 - 快速原型开发:开发者只需
uv run script.py即可运行,无需手动管理虚拟环境。省去环境搭建步骤。 - 国内网络环境优化:通过配置
uv.toml指向清华源,避免 PyPI 官方源的网络延迟。下载速度提升明显,尤其对于大型依赖包。 - 多项目切换:不同项目使用不同 Python 版本或依赖源时,
uv自动识别项目配置,无需手动切换环境。每个项目独立管理。
核心优势
- 速度:依赖安装比传统 pip 快 10 倍以上。核心机制是 Rust 编写的并行下载器,加上本地缓存,减少重复下载。
- 简化操作:
uv run将虚拟环境创建、激活、脚本执行合并为一条命令。降低新手使用门槛,也减少老手的重复劳动。
有一点需要注意:uv 目前仍处于快速迭代阶段,部分高级功能(如私有源认证)可能需要额外配置。实际使用时,建议先在小项目上测试兼容性。








这一切,似未曾拥有