新一代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(相关的本地包管理提案)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

路由交换技术-思科拓扑搭建

配置流程 1.搭建网络拓扑图。 2.规划配置IP地址,内网配置为192.168.1.0和192.168.2.0网段。 3.划分vlan10,vlan20,vlan30。 4.配置静态、动态路由。配置路由器Router7,使内外网互通。 5.配置链路聚合。通过链路聚合技术&#xff…

清华大学视觉空间智能新突破!Spatial-MLLM:提升多模态大语言模型的视觉空间智能能力

作者:Diankun Wu, Fangfu Liu, Yi‑Hsin Hung, Yueqi Duan 单位:清华大学 论文标题:Spatial-MLLM: Boosting MLLM Capabilities in Visual-based Spatial Intelligence 论文链接:https://arxiv.org/pdf/2505.23747 项目主页&a…

AI与机器学习ML:利用Python 从零实现神经网络

自线性回归以来,我们已经涵盖了很多领域。在本期中,我们将开始了解神经网络内部工作原理的旅程*。* 如果一个人试图了解任何使用生成式 AI 的工具、应用程序、网站或其他系统的内部工作原理,那么掌握神经网络的架构至关重要。在这个故事中&a…

Vim 匹配跳转与搜索命令完整学习笔记

Vim 匹配跳转与搜索命令完整学习笔记 文章目录 Vim 匹配跳转与搜索命令完整学习笔记1. 括号/结构匹配% - 括号匹配跳转[[ / ]] - 函数定义跳转[{ / ]} - 代码块边界跳转 2. 精确单词搜索* - 向下精确搜索# - 向上精确搜索 3. 模糊单词搜索g* - 向下模糊搜索g# - 向上模糊搜索 4…

安卓9.0系统修改定制化____系列 ROM解打包 修改 讲解 导读篇

专栏系列前言: 💝💝💝本专栏作者从事rom系统修改以及手机维修 刷机多年。从当年山寨机开始。历经安卓4.--至目前的安卓15.合作伙伴遍及各类工作室以及PDA商家 私人玩友等。在广告机 平板 pda设备 会议机 车机的rom修改中略有经…

Vue3本地存储实现方案

在 Vue 3 中实现本地存储(如用户配置数据),主要通过浏览器提供的 localStorage 或 sessionStorage API。以下是详细实现方案: 基础实现(原生 API) javascript 复制 下载 // 存储数据 localStorage.set…

计算机视觉与深度学习 | 2024年至2025年图像匹配算法总结(原理,公式,代码,开源链接)

图像匹配算法 一、核心算法分类与技术路线1. **传统局部特征 + 匹配优化**(鲁棒性强,适合资源受限场景)2. **端到端密集匹配网络**(高精度,适合复杂形变/弱纹理)3. **基于光流思想的匹配网络**4. **2024-2025年新趋势**二、核心开源工具库汇总三、典型代码流程(以LoFTR为…

瑞芯微 MIPI D-PHY 接收器(RX)驱动学习笔记

驱动文件位置 driver/phy/rockchip/phy-rockchip-mipi-rx.c 1 重要结构体 struct mipidphy_priv {struct device *dev;//表示与驱动程序关联的设备。它用于设备管理,如设备注册、注销等。struct regmap *regmap_grf;//用于映射和访问通用寄存器文件(Gen…

MySQL从入门到DBA深度学习指南

目录 引言 MySQL基础入门 数据库基础概念 MySQL安装与配置 SQL语言进阶 数据库设计与规范化 数据库设计原则 表结构设计 MySQL核心管理 用户权限管理 备份与恢复 性能优化基础 高级管理与高可用 高可用与集群 故障诊断与监控 安全与审计 DBA实战与运维 性能调…

多个机器人同时加载在rviz及gazebo同一个场景中

1. 配置launch文件 gazebo的加载相对容易,但rviz中加载,需要构建完整的tf树(world → map(或map_merged)→ odom → base_footprint → base_link → base_scan)才能正常显示,launch文件主要是…

Text2SQL、Text2API基础

你有一个能力超强但“不太懂行”的助手(大语言模型LLM)。它能说会道,知识渊博,但它: 不懂你的数据库: 不知道你的数据库里有哪些表,表里有哪些字段,这些字段代表什么意思。不懂你的…

JDK 8u231安装教程 - Windows 64位下载安装及环境变量配置指南

下载安装包 把jdk-8u231-windows-x64.exe这个文件下载下来,下载链接:https://pan.quark.cn/s/a610ca7e5e9d,随便放哪儿,比如桌面或者下载文件夹。 双击运行安装 找到下载好的那个exe文件,直接双击打开。可能会弹个窗口…

LatentSync V8版 - 音频驱动视频生成数字人说话视频 更新V1.6版模型 支持50系显卡 支持批量 一键整合包下载

LatentSync 是字节跳动开源的一款"AI口型同步神器",简单来说就是能让视频里的人物嘴巴动得和声音完美匹配的工具。比如你给一段配音,它能自动调整视频人物的嘴型,按照配音里的声音说出来,就像真人说话一样自然。简单说就…

从一组线段中得出四边形的算法

原始的需求是使用OpenCV的直线检测算法(例如LSD)之后,得到一组线段。然后需要从这些线段得到类似矩形的四边形,用于检测经过透视变换的矩形物体。这些线段不一定首尾相接,彼此之间可能相交或有一定距离。 以下是需求图…

提示词Prompts(2)

摘要: 本文介绍了langchain.prompts中基础的提示词模板的高级用法,包括利用PipelinePrompt组合Prompt使用,多模态场景、动态占位符的使用等进行了介绍。 文章目录 1. 背景2. PipelinePrompt2.1 组合两个Prompt模板2.2 多模态模板 3. 聊天提示…

服务器代码知识点补充

目录 UdpServer: 观察者模式: remove_if算法 管道补充: 文件的标准输出 ,标准输入,标准错误 UdpServer: 数据接收模块关心Adduser 和Deleuser 两个模块 线程池关心Route模块 将这三个方法注册进服务器 ,但是有临界区问题(线程池与数据接受模块可能同时访问用户管理模块,所…

R语言缓释制剂QBD解决方案之二

药物层优化研究 在药物层工艺中水溶剂蒸发起到重要的作用。湿的环境会使丸子聚集,而干的环境影响药物与MCC的粘合。输入变量如气流量,喷雾速率,雾化压力,和产品温度对MCC沉着和包衣溶剂蒸发的平衡有影响。进行了带3个中心点的24-…

Html实现图片上传/裁剪/马赛克/压缩/旋转/缩放

cropper下载 https://download.csdn.net/download/dongyan3595/90970115 前端代码 <!doctype html> <html lang"en"> <head><base href"/aishop/"><meta name"viewport" content"widthdevice-width, initial…

springboot项目中整合高德地图

一&#xff1a;高德开放平台的使用 高德开放平台 | 高德地图API 注册高德地图账号 认证填写个人信息&#xff1a; 认证方式选择“个人认证开发者”即可&#xff0c;然后完善信息 认证成功之后&#xff0c;再次进入控制台&#xff0c;创建关于地图的应用 创建Key&#xff08;y…

鸿蒙开发-视频学习及实用中的一些小结

1.extend 和 styles extend是在styles基础上进行了升级 使用的时候extend是全局的。 styles不加function 局部 加了就是全局。 2.builder 中要引用comp组件 需要在外层嵌套布局 3.ability之间的跳转 want需要加&#xff1b; 4. as 类型断言 &#xff01;跟在xxx! 表示…