当前位置: 首页 > news >正文

新一代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

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows

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

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

pip install uv

通过 pipx 安装

pipx install uv

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


常见用法

1. 安装依赖

uv pip install requests
uv pip install -r requirements.txt

2. 运行 Python 脚本

uv run main.py
uv run --python "C:/path/to/python.exe" main.py

3. 查看/管理依赖

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 项目开发、测试、部署
  • 需要快速、自动化的依赖和环境管理
  • 追求极致开发体验和环境隔离的开发者

参考资料

  • uv 官方文档
  • PEP 582(相关的本地包管理提案)

相关文章:

  • 戴尔 17G 服务器 E610 OCP千兆网卡驱动安装
  • 高频面试之11Flink
  • ar 导航导览技术如何实现的?室内外融合定位与ar渲染技术深度解析
  • 深入理解 PyTorch:从基础到高级应用
  • C#实战:解决NPOI读取Excel单元格数值0.00001显示为1E-05的问题
  • ROS2编译的理解,与GPT对话
  • 基于springboot旅游管理系统+源码+文档+视频
  • 优化 Excel 文件可以提升文件性能、减少文件大小并加快计算速度
  • 【 新能源汽车OBD网关全解析:原理、方案、测试与趋势】
  • 中科院1区|IF10+:加大医学系团队利用GPT-4+电子病历分析,革新肝硬化并发症队列识别
  • postman Access denied for user‘root‘@‘XXXXXXXX(using password: YES)
  • ubuntu 无法访问位置 error mounting 解决办法 双系统
  • Linux驱动学习day4
  • 第六章 进阶21 奶茶周会没了奶茶
  • 华为云Flexus+DeepSeek征文 | 基于Dify构建个人在线旅游助手
  • React Native【实战范例】水平滚动分类 FlatList
  • 提示词Prompts(1)
  • 【论文阅读笔记】ICLR 2025 | 解析Ref-Gaussian如何实现高质量可交互反射渲染
  • 【论文阅读笔记】CVPR2025 | 2D高斯溅射的几何-光照解耦:Ref-GS实现开放世界级真实渲染
  • 【React Native 性能优化:虚拟列表嵌套 ScrollView 问题全解析】
  • 网站建设与网页设计制作书籍/域名注册网站系统
  • 动漫制作专业大学/搜索引擎优化的名词解释
  • 百度网站建设费用多少知乎/昆明百度推广优化
  • 企业网站主页模板/优化关键词的方法
  • 商城系统开源/seo是什么部位
  • 阿里云oss做网站备份/疫情最新数据