uv:极速的Python包和项目管理工具

你平时装Python包是不是总觉得慢得像蜗牛一样?尤其是遇到复杂依赖的项目时,pip install
转半天都没动静。这时候我就想,是不是该换个更靠谱、更快的工具了。后来我就发现了uv,用了之后真的有种“回不去了”的感觉。
uv是一个由**Astral(也就是搞出超火Python工具Ruff的那家公司)**开发的新一代包管理器。它是用Rust写的,性能那叫一个快,据说能比pip快上10到100倍!而且不仅仅是装包,它还可以当你整个Python项目的“管家”,一站式搞定项目环境、依赖、脚本、Python版本啥的。我们来一个个看看它到底有多厉害。
首先,uv不只是装包快,是真的快。我看过它的benchmark图表,对比pip的安装速度,那叫一个碾压级别。尤其是像装Trio这种稍微复杂点的依赖包,它在“热缓存”的情况下直接秒装完成,pip那边还在转圈圈呢。
其次,它几乎把Python开发中所有你能想到的工具都合在了一起。像什么pip
、pip-tools
、pipx
、poetry
、twine
、pyenv
、virtualenv
……通通不需要了,一个uv就够了。我最喜欢它的一个点是:它有个通用lockfile,在团队合作或者不同操作系统之间同步依赖,真的省事儿很多。
还有一个超赞的功能是:运行脚本的时候可以内联依赖说明。就比如你有个脚本,要用requests
,你直接在脚本开头声明一下,uv就会自动给你装好,直接就能跑,这比手动搞虚拟环境方便太多了。而且如果你有很多这样的脚本,uv也有点类似“cargo”的那种workspace支持,把多个项目集中管理,一下子提升了整个工作流的效率。
说到Python版本管理,你是不是以前也在用pyenv
、asdf
或者什么Python Launcher来切换版本?现在不用那么麻烦,uv自己就能搞定。而且它安装Python版本也特别快,还支持多个平台,macOS、Linux、Windows全都OK。
再说一点就是它的CLI设计很贴心,基本上就是pip那一套命令格式,所以你用起来完全不陌生,马上就能上手。而且它在底层做了大量性能优化,用起来不仅快,还特别省磁盘空间。因为它用了全局缓存的机制,多个项目如果用了同样的依赖,只会存一份,真的良心。
最关键的:你都不用提前装Rust或者Python,直接用curl或者pip就能装uv,这点真的非常人性化。
最后嘛,我自己的感觉是:uv这种工具完全是为现代Python开发量身定做的,不仅速度快,还省事儿,功能又全。要是你也和我一样,厌烦了pip各种慢和杂乱的工具链,那uv真的值得你试一试。尤其是像我这种经常折腾新项目、搞脚本、跑实验的,用uv之后效率直接翻倍,心情都变好了。
总之(咳,不说总之),uv是真的香,谁用谁知道。你也赶紧试试吧。