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

再见 Pip!Python 包管理神器 uv 上手指南:用 Rust 重写的安装速度快到离谱

🐢 前言:为什么我们需要抛弃 Pip?

在 Python 生态中,pip是绝对的基石,但它的架构毕竟老旧。
当你的项目依赖复杂时,pip 的解析速度(Resolution)简直是灾难。而uv的出现,就是为了解决两个字:速度

uv 的杀手锏:

  1. Rust 加持:利用 Rust 的内存安全和零开销抽象,并在底层进行极致优化。
  2. 全局缓存:不同项目间共享缓存,拒绝重复下载。
  3. 多功能合一:它既是包管理器,也是虚拟环境管理器,还是脚本运行器。

🏎️ 一、 速度实测:不是快一点点

口说无凭,直接看数据。
在冷启动(无缓存)条件下,解析并安装一个普通的 Django/Flask 项目依赖。

工具解析时间 (Resolution)安装时间 (Installation)总体感受
Pip🐢 2.5s🐢 5.0s能用,但慢
Poetry🐢 3.0s🐰 4.5s优雅,但解析慢
uv0.05s0.3s眨眼就结束

工作流对比 (Mermaid):

极速模式 (uv)

毫秒级

并行下载 + 硬链接

uv venv

uv pip install

瞬间完成

传统模式 (Pip)

慢速解析

创建 venv

激活 venv

pip install

等待...

安装完成


🛠️ 二、 安装与上手

1. 安装 uv

你可以用 pip 安装它(这是为了安装“卸载 pip 的工具”),或者用脚本。

# MacOS / Linuxcurl-LsSfhttps://astral.sh/uv/install.sh|sh# Windowspowershell-c"irm https://astral.sh/uv/install.ps1 | iex"# 或者用 pippipinstalluv
2. 管理虚拟环境 (替代 venv)

以前你需要python -m venv .venv,现在:

# 创建虚拟环境 (速度极快)uv venv# 激活 (和以前一样)# Linux/Macsource.venv/bin/activate# Windows.venv\Scripts\activate
3. 安装依赖 (替代 pip install)

uv 的命令设计故意兼容了 pip 的习惯,你只需要在前面加个uv

# 安装单个包uv pipinstallrequests# 从文件安装uv pipinstall-rrequirements.txt# 甚至可以直接识别 pyproject.tomluv pipinstall-rpyproject.toml

注意:uv 会自动检测当前目录下的虚拟环境并安装进去,不需要你手动激活!


✨ 三、 杀手级功能:uv run与 脚本隔离

这是我最喜欢的功能,类似于 Node.js 的npx
假设你写了一个脚本script.py,依赖pandasrequests
以前你需要:创建环境 -> 激活 -> 安装 pandas -> 运行。

现在,你只需要在脚本头部加上元数据(PEP 723):

# script.py# /// script# requires-python = ">=3.11"# dependencies = [# "requests<3",# "pandas",# ]# ///importrequestsimportpandasaspdprint("Hello uv!")

然后直接运行:

uv run script.py

uv 会自动创建一个临时的、隔离的虚拟环境,下载依赖,运行脚本,用完即走。这对于测试代码片段、CI/CD 流水线简直是神器。


🔄 四、 兼容性与迁移

Q: 我现有的项目能用吗?
A:完全可以。uv 旨在成为 pip 的“直接替代品(Drop-in Replacement)”。它支持.txt.toml,支持editable安装模式。

Q: 它可以替代 Poetry 吗?
A:部分可以。uv 目前更侧重于底层的包安装和环境管理。虽然它现在也推出了uv inituv add来管理项目依赖(类似于 Poetry 的工作流),但如果你深度依赖 Poetry 的 Publish/Build 功能,可以暂缓,或者混用(用 Poetry 管理配置,用 uv 安装)。


🎯 总结

uv不是一个简单的轮子,它是 Python 基础设施现代化的一次重大升级。
在 Rust 的加持下,它向我们证明了:原来 Python 的开发体验可以这么丝滑。

谁适合切换?

  • 受够了 CI/CD 流水线安装依赖太慢的团队。
  • 需要在本地频繁切换项目的开发者。
  • 喜欢尝试新工具的技术极客。

Next Step:
打开你的终端,执行pip install uv,然后随便找一个requirements.txt比较大的旧项目,运行uv pip install -r requirements.txt,体验一下什么叫“离谱的快”。

http://www.jsqmd.com/news/183234/

相关文章:

  • 【开题答辩全过程】以 基于Python的学生选课系统设计与实现为例,包含答辩的问题和答案
  • CH340/CP2102/FT232常见芯片驱动下载对照表及识别方法
  • 本地知识库:数据安全时代的智能文件管家
  • 不同的多电平变换器拓扑在电池储能应用中的应用附Simulink仿真
  • 利用Jupyter快速启动VoxCPM-1.5-TTS-WEB-UI详解
  • MyBatis-Plus 分页插件失效?深扒 PageHelper 与 MP 冲突的底层源码,教你避开“假分页”陷阱
  • 【开题答辩全过程】以 基于python的阳泉房产推荐系统为例,包含答辩的问题和答案
  • DeepSeek 部署报错 “Connection refused“?Ollama 本地服务连接失败的 3 种终极解决方案
  • 采用SRF算法的分流有源滤波器【并联有源滤波器的仿真电路可降低谐波和无功功率】附Simulink仿真
  • 实用指南:AI RAG 向量数据库深度对比
  • 168_尚硅谷_二维数组介绍和入门
  • Sonic数字人四川话模拟可行性分析:地域化应用新方向
  • Node.js console.time轻松测函数耗时
  • VoxCPM-1.5-TTS-WEB-UI语音合成支持服务注册与发现机制
  • Mathtype授权一台机?我们的服务支持多实例运行
  • HTML表单提交数据?现在用API调用生成语音
  • 导师严选10个AI论文写作软件,助本科生轻松搞定毕业论文!
  • 军事模拟系统:指挥官训练中使用VoxCPM-1.5-TTS-WEB-UI生成敌情通报
  • 达姆施塔特工业大学发现:专家混合模型AI安全机制存在脆弱性
  • LabVIEW与VisionPro联调实战:工业视觉那些不能跳过的坑
  • uniapp+ssm中学生社团管理系统小程序
  • uniapp+ssm中学生社团管理系统小程序
  • 中科大联手字节跳动:用涂鸦就能编辑图片的神奇AI工具诞生了
  • 妇联组织用Sonic讲述三八红旗手先进事迹
  • uniapp+ssm医院预约挂号小程序
  • 超导磁能储存系统的建模和仿真附Simulink仿真
  • uniapp+ssm学校高校校园生活综合服务系统小程序
  • 政府信息公开:市民拨打热线听取VoxCPM-1.5-TTS-WEB-UI政策解读
  • 港大与Adobe联合推出突破性Self-E模型
  • 车间调度基于麻雀优化算法的车间调度附Matlab代码