新一代python管理工具--uv

uv 工具全方位介绍

起源与背景

uv 是由 Astral(pipx 作者)团队用 Rust 语言开发的新一代 Python 包和环境管理工具。其目标是解决传统 pip/venv/conda 在依赖解析慢、环境隔离繁琐、命令复杂等方面的痛点,为现代 Python 项目提供极速、自动化、一体化的依赖和环境管理体验。


主要特点

  • 极致性能 :uv 采用 Rust 实现,依赖解析和包安装速度比 pip 快 10-100 倍(详见官方基准测试)。
    • 为什么快?Rust 实现的高效算法、并发下载、优化的依赖解析流程,使 uv 能极大提升解析和安装效率。
  • 一站式工具集成:uv 可替代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等,统一管理依赖、环境、脚本、Python 版本和工具。
  • 全局缓存与依赖去重:通过全局缓存和依赖去重机制,显著节省磁盘空间,多项目共享依赖无需重复安装。
  • 自动环境与项目管理 :每个项目自动创建 .venv,支持 universal lockfile,支持大型项目工作区(workspaces)。
  • 支持 Python 版本管理:可安装和切换多版本 Python。
  • 脚本运行与工具管理:支持带内依赖元数据的脚本运行,支持直接安装和运行 Python 工具包。
  • pip 兼容命令行:完全兼容 pip 常用命令,迁移无门槛。
  • 跨平台,安装便捷:支持 macOS、Linux、Windows,无需预装 Rust/Python,可用 curl、pip、pipx 安装。

安装方法

macOS 和 Linux

sh 复制代码
curl -LsSf https://astral.sh/uv/install.sh | sh

Windows

powershell 复制代码
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

通过 pip 安装(需已安装 Python)

sh 复制代码
pip install uv

通过 pipx 安装

sh 复制代码
pipx install uv

更多安装方式和细节请参考 uv 官方安装文档


常见用法

1. 安装依赖

sh 复制代码
uv pip install requests
uv pip install -r requirements.txt

2. 运行 Python 脚本

sh 复制代码
uv run main.py
uv run --python "C:/path/to/python.exe" main.py

3. 查看/管理依赖

sh 复制代码
uv pip list
uv pip freeze > requirements.txt
uv pip uninstall numpy

4. 自动创建虚拟环境

  • 只需在项目目录下运行任何 uv 命令,uv 会自动检测并创建 .venv 环境。
    如果要制定python 版本, 可以在工程根目录下放一个.python-version文件, 或者通过命令行指定python 版本。 否则uv会自动选择一个版本下载。

5. 解析 pyproject.toml

  • uv 会自动识别并安装 pyproject.tomlrequirements.txtsetup.py 中声明的依赖。

常用命令速查表

命令 说明
uv pip install 包名 安装依赖包
uv pip uninstall 包名 卸载依赖包
uv pip list 查看已安装包
uv pip freeze 导出依赖列表
uv run xxx.py 在隔离环境中运行脚本
uv run --python 路径 xxx.py 用指定 Python 运行脚本
uv pip install -r requirements.txt 按依赖文件安装所有依赖

uv 相比 pip 的主要优势

对比项 pip(传统工具) uv(新一代工具)
依赖解析与安装速度 较慢,解析和安装大项目依赖时耗时明显 极快,Rust 实现,依赖解析和包安装速度大幅领先
虚拟环境管理 需手动用 venv/virtualenv 创建与激活 自动为每个项目创建和管理 .venv,无需手动激活
自动识别依赖文件 仅支持 requirements.txt,pyproject.toml 支持有限 自动识别 pyproject.toml、requirements.txt、setup.py 等多种格式
一键运行脚本 需手动激活环境再运行脚本 uv run xxx.py 自动在隔离环境中运行脚本
命令兼容性 pip 命令标准 兼容 pip 子命令,且功能更丰富
安装体验 依赖冲突、环境不一致可能导致出错 自动隔离、自动同步依赖,极大减少环境冲突
包缓存 支持缓存,但多环境间仍需重复安装 高效缓存,自动重用已下载包,提升多项目间安装速度
跨平台支持 良好 同样良好

总结

  • uv 在依赖解析速度、自动环境管理、依赖文件识别和一键运行脚本等方面全面领先 pip。
  • uv 适合追求开发效率、环境隔离和现代项目自动化管理的用户。
  • pip 仍是最广泛兼容的传统工具,适合简单项目或对兼容性有极高要求的场景。

适用场景

  • 现代 Python 项目开发、测试、部署
  • 需要快速、自动化的依赖和环境管理
  • 追求极致开发体验和环境隔离的开发者

参考资料

相关推荐
呆呆的小草18 分钟前
Cesium距离测量、角度测量、面积测量
开发语言·前端·javascript
uyeonashi20 分钟前
【QT系统相关】QT文件
开发语言·c++·qt·学习
鹏码纵横1 小时前
已解决:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常的正确解决方法,亲测有效!!!
java·python·mysql
仙人掌_lz1 小时前
Qwen-3 微调实战:用 Python 和 Unsloth 打造专属 AI 模型
人工智能·python·ai·lora·llm·微调·qwen3
冬天vs不冷1 小时前
Java分层开发必知:PO、BO、DTO、VO、POJO概念详解
java·开发语言
sunny-ll1 小时前
【C++】详解vector二维数组的全部操作(超细图例解析!!!)
c语言·开发语言·c++·算法·面试
猎人everest2 小时前
快速搭建运行Django第一个应用—投票
后端·python·django
猎人everest2 小时前
Django的HelloWorld程序
开发语言·python·django
嵌入式@秋刀鱼2 小时前
《第四章-筋骨淬炼》 C++修炼生涯笔记(基础篇)数组与函数
开发语言·数据结构·c++·笔记·算法·链表·visual studio code
嵌入式@秋刀鱼2 小时前
《第五章-心法进阶》 C++修炼生涯笔记(基础篇)指针与结构体⭐⭐⭐⭐⭐
c语言·开发语言·数据结构·c++·笔记·算法·visual studio code