昨天,我团队的CI/CD构建时间从5分钟变成了3秒。缘由无他,我们把用了五年的Poetry换成了uv。
“uv是近十年来Python生态系统发生的最好的事情。”
第一次在英国天文学家Emily L. Hunt的博客里看到这句话时,我还不以为然。又一个“颠覆性”工具?得了吧,Python的包管理江湖,我见识得太多了。从pip到conda,从virtualenv到poetry,哪个不是带着“救世主”的光环登场,最后还不是留下一堆新的坑?

但当我抱着试试看的心态,在某个深夜项目里敲下 uv sync 后,我真香了。
看着依赖列表飞速滚动,200多个包在3秒内解析安装完毕,我默默关掉了原本打算刷一刷的B站——等待时间太短,根本来不及摸鱼。
Python的世界苦慢久矣。 而uv,这个用Rust写成的“全能选手”,正在用堪比火箭的速度,把我们从“pip install”的漫长等待中解救出来。

01 初识uv:以为是青铜,没想到是王者
uv出自Astral公司,就是那个做出了“Python代码格式化神器”Ruff的团队。不得不说,这帮人是懂Python程序员的痛点的。
我第一次用uv,是由于被一个陈年老项目折磨得够呛。那个项目的requirements.txt里锁了80多个包,版本冲突是家常便饭。每次pip install都像在拆弹,一不小心就爆出一片红。
同事扔给我一句命令:“试试 uv sync –frozen。”
我将信将疑地运行了。结果呢?依赖解析速度快得我以为是卡了bug,安装过程更是像开了倍速。事后我查了数据:在解析大型项目依赖(100+个包)时,uv比pip快了整整40倍。
从此,我们团队彻底“入坑”。

02 一统江湖:一个工具干掉整个工具箱
uv最让我这种老运维感动的是,它终于终结了“工具链选择困难症”。
还记得刚学Python时,为了搞清楚pip、virtualenv、venv、pyenv、poetry、pipx……之间的关系,我差点弃坑。目前好了,uv一个工具全搞定。
来看看我们团队工作流的变迁史:
“上古时期”的工作流(像在演历史剧):
bash
python -m venv .venv
source .venv/bin/activate # Windows朋友还得用不同的命令
pip install -r requirements.txt
pip install -e .
目前的uv工作流(干净利落):
bash
uv sync
就这一句。它会自动创建虚拟环境、安装所有依赖、处理可编辑安装,顺便生成一个确保环境一致的锁文件。
最让我惊喜的是 uvx 命令。以前想临时用一下 ruff 或者 http-server,得先纠结用pip全局安装污染环境,还是折腾pipx。目前直接:
bash
uvx ruff
uv会自动下载并在一次性环境中运行它,用完即焚,深藏功与名。
03 性能玄学:从“咖啡时间”到“眨眼之间”
uv的性能提升不是那种“实验室里的理论值”,而是每个开发者都能真切感受到的。
我们团队的一个AI项目在GitHub Actions上的表现最为典型:
迁移前(使用Poetry):
- 依赖安装阶段:4-5分钟
- 每次看CI运行,都够我去接杯咖啡,再和同事聊两句
- 月度AWS CodeBuild费用:约350美元
迁移后(使用uv):
- 依赖安装阶段:2-3秒
- 咖啡?刚起身就构建完了,差点闪到腰
- 月度费用降至150美元,镜像体积还小了40%
这种从“分钟级”到“秒级”的体验升级,一旦用过就再也回不去了。

04 实战踩坑:uv也不是完美情人
当然,用了uv几个月,我们也发现了一些“小脾气”。
坑点一:私有源配置
uv目前对私有源的配置还不够“智能”。我们公司的内部包存放在私有PyMirror,第一次使用时必须手动指定 –index-url,不能像pip那样依赖默认配置。
解决方案:
在项目目录下创建 .env 文件,写明源地址:
text
UV_INDEX_URL=https://pypi.company.com/simple
坑点二:Poetry插件的生态依赖
如果你重度依赖某些Poetry插件(列如poetry-dynamic-versioning),现阶段可能还得再等等。uv的插件生态还在成长中。
不过,这些对我们来说都是小问题。相比于它带来的效率提升,这点适应成本几乎可以忽略不计。

05 为什么你应该关注uv?
作为一个过来人,我认为uv值得尝试的理由很简单:
对新手而言: 它大幅降低了Python环境管理的门槛。不用再被一堆工具概念搞晕,从第一天起就用上最现代的工作流。
对老手而言: 它是实实在在的效率提升。时间是最宝贵的资源,把等待依赖安装的时间省下来,无论是用来写代码还是摸鱼,都更香。
连权威的Thoughtworks技术雷达都把它列为最高级别的“Adopt(采纳)”,并评价其为“显著提升开发者体验”的工具。这在严谨的技术圈里,算是很高的赞誉了。
目前,我们团队的新项目已经全面拥抱uv,甚至连一些陈年老项目也在逐步迁移。那个让我初识uv的“依赖地狱”项目,如今构建成功率达到100%,再也没出现过“在我本地是好的”这种经典问题。
如果你也受够了没完没了的依赖等待,不妨花5分钟试试uv。也许,这就是你一直在寻找的Python开发“加速器”。
(uv官网:astral.sh,安装只需一行命令:curl -LsSf
https://astral.sh/uv/install.sh | sh)















- 最新
- 最热
只看作者