抛弃 Pip,UV安装快20倍

抛弃 Pip?Rust 编写的 UV 可能是 Python 开发的终极答案

作为一名 Python 开发者,你肯定经历过这种绝望:当你接手一个新项目,敲下 poetry install 或者 pip install 后,甚至有时间去楼下买杯咖啡,回来发现依赖解析还在转圈圈。

苦恼于 pip 的慢、poetry 的依赖解析卡顿以及 venv 管理的繁琐,Python 社区终于迎来了一个真正的「破局者」------ UV

简单说,这玩意儿就是 Python 包管理界的 F1 赛车

UV 是什么来头?

如果你用过 Ruff(那个快到离谱的 Python 代码 linter),那你对 Astral 这个团队一定不陌生。没错,UV 就是这帮人搞出来的。

他们再次祭出了大杀器------Rust。UV 底层完全由 Rust 编写,利用了 Rust 极致的性能和并行处理能力。官方数据显示,它的安装速度比 pip 快几十倍,依赖解析速度比 poetry 快上百倍。

这不是夸张,是真的「眨眼补帧」级别的快。

为什么要换用 UV?它能干嘛?

现在的 Python 工具链其实挺碎片的:装包用 pip,管环境用 venvconda,管依赖和打包用 poetryflit

UV 的野心是:我全都要。 它定位为一站式的 Python 项目构建与包管理工具。

1. 速度,还是 Tmd 速度

这是 UV 最大的卖点。它自带高效缓存和并行下载。如果你试过用 UV 安装像 PyTorch 这种庞然大物,你会发现进度条跑得跟飞一样。它不仅兼容 requirements.txt,而且不需要你改任何代码,直接无缝替换 pip

2. 一个工具,搞定所有

以前我们需要组合拳,现在 UV 自己就能打全场:

  • 替代 Pip:极速装包。
  • 替代 Venv/Conda:它内置了虚拟环境管理,毫秒级创建环境。
  • 替代 Poetry/Pipenv :它支持 pyproject.toml,能生成 uv.lock(锁文件生成速度极快),彻底告别依赖地狱。
  • 替代 Setuptools:支持构建 wheel 和 sdist 源码包,发布项目也归它管。

3. 无痛迁移

最让我惊喜的是它的兼容性。它完全尊重现有的标准(PEP 621),兼容你现在的 pip.conf 配置,甚至连国内的清华源、阿里源都能直接识别,不需要重新配置一堆东西。

快速上手指南

别被「新工具」吓到,UV 的上手成本极低。

第一步:安装 UV

比较黑色幽默的是,目前最方便安装 UV 的方式还是用 pip:

bash 复制代码
pip install uv --user

第二步:体验飞一般的装包(替代 Pip)

命令几乎一模一样,只需要加个 uv 前缀:

bash 复制代码
# 单个包安装
uv install requests

# 从 requirements.txt 安装(感受一下这个解析速度)
uv pip install -r requirements.txt

第三步:现代化的项目管理(替代 Poetry)

如果你想体验完整的项目流:

bash 复制代码
# 1. 初始化项目
uv init my_new_project

# 2. 创建虚拟环境(自动生成 .venv,不需要再敲 python -m venv 了)
uv venv

# 3. 激活环境
# Windows:
.venv\Scripts\activate
# Mac/Linux:
source .venv/bin/activate

# 4. 构建发布
uv build

写在最后

UV 目前虽然还在快速迭代中,但已经非常稳定,完全可以用于生产环境。对于受够了 Python 传统工具链「慢」和「碎」的开发者来说,UV 绝对值得你花 5 分钟去尝试一下。

既然能开法拉利,为什么还要推独轮车呢?

相关推荐
临渊羡鱼的猫3 小时前
uv安装方法
uv
weixin_462446233 小时前
用 python -m ensurepip --upgrade 修复 uv / venv 中缺失 pip 的问题
python·pip·uv
万粉变现经纪人6 小时前
如何解决 pip install 代理报错 SOCKS5 握手失败 ReadTimeoutError 问题
java·python·pycharm·beautifulsoup·bug·pandas·pip
AI云原生7 小时前
如何解决 pip install 代理报错 SOCKS5 握手失败 ReadTimeoutError 问题
网络·爬虫·python·网络协议·tcp/ip·scikit-learn·pip
MuGuiLin21 小时前
Conda 环境管理工具:高效管理 Python 与多版本依赖使用详解
conda·pip·anaconda·uv·虚拟环境·.venv·python版本管理
脾气有点小暴1 天前
uv-drop-down-popup 在 iOS 真机中随屏幕滚动偏移
ios·uniapp·uv
一杯咖啡Miracle1 天前
UV管理python环境,打包项目为docker流程
python·算法·docker·容器·uv
木卫二号Coding2 天前
pip库备份方法
chrome·python·pip
很帅的友人3 天前
cocos creator3.8 箭头的uv 流动shader
uv