Python uv 包学习

最近在看MCP相关的内容,其中很多都提到了使用uv来管理Python的包依赖。通过了解,uv看起来是一个很有用的工具,这里总结一下功能。

uv到底是什么呢?

uv首先是一个包,是使用rust语言写的一个Python包,安装后,可以使用uv命令。

pip install uv

uv能做什么?

  1. 能代替pip

在平时使用的pip命令前,加上uv就好了。既然如此,为什么一定要用uv,而不是pip?答案是因为非常块,据统计,是pip的77倍。

  1. 能代替venv或virtualenv

少装一个包,命令更整洁。uv 在创建虚拟环境和安装包方面比 venvvirtualenv 快很多。

  1. 能代替poetry

问题来了,poetry是什么?poetry是用来更方便的管理Python的依赖问题。那为什么不用pip + requirements 呢?答案是麻烦。另外,requirements文件,不能锁住依赖的依赖,比如,我锁住了A这个包的版本,但是A又依赖B、C、D,而这使得“在我电脑上能运行但在别人的电脑上无法运行”问题很常见。现在,有了uv,poetry也被代替了。

  1. 能用来代替pipx

问题又来了,pipx是啥?pipx是一个安装Python工具但是不污染环境的工具。

举个例子,假如我需要安装一个命令行工具,我会运行

pip install httpie

但是它可能会污染我的环境,卸载还会有副作用。而现在,我可以运行

pipx install httpie

不会污染环境。

不过呢,现在这条命令也被代替了,现在可以运行

uv tool install

一句话总结uv:Python 依赖管理的“下一代事实标准”。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计