『不废话』之Python管理工具uv快速入门
在『不废话』之大模型推理超参数解释『不废话』之动手学MCP 中提到了uv,很多朋友都说没用过,咨询有什么优势?
通常Python新手都会使用conda、miniconda来管理Python环境,稍微高阶水平的会使用pyenv、poetry、virtualenv等工具来管理,但这些工具都有一个问题:慢!不简约!现在是时候了解一下uv
了!由开发ruff
的团队Astral打造,uv
是一个用Rust编写的极速Python包安装器和解析器,旨在成为pip
和pip-tools
的直接替代品,并且还内置了虚拟环境管理功能。本文的目标就是——不废话,带你快速上手uv
。
为什么是 uv?
核心优势就两个字:快 和 整合。
- 极致速度:
uv
使用Rust编写,并基于并行处理和智能缓存策略。根据官方数据和社区反馈,它在安装、解析依赖等场景下,比pip
及其组合工具链(如pip-tools
)快10-100倍。对于大型项目或CI/CD流程,这意味着节省大量时间。 - All-in-One:
uv
不仅是包安装器 (pip
替代),还是虚拟环境管理器 (venv
/virtualenv
替代) 和依赖锁定工具 (pip-compile
替代)。一个工具搞定核心需求,命令更统一、简洁。
如果你受够了等待pip install
或者管理多个工具链,uv
值得一试。
https://docs.astral.sh/uv/
安装 uv
官方提供了多种安装方式,选择适合你的:
macOS 和 Linux (推荐):
# 通过 curl 安装
curl -LsSf https://astral.sh/uv/install.sh | sh# 或者,如果你使用 pipx (推荐管理Python应用)
pipx install uv
Windows (推荐):
# 通过 PowerShell 安装
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"# 或者,如果你使用 pipx
pipx install uv
其他方式:
也可以通过pip
, conda
, brew
等安装,详情参考官方文档。安装后,验证一下:
uv --version
快速上手
uv
的设计目标之一就是与pip
的命令保持兼容性,降低学习成本。
项目初始化
uv init
这将创建 4个文件:
- .python-version:指定项目的 Python 版本。
- hello.py:一个简单的初学者脚本文件
- pyporject.toml:配置项目依赖项、构建设置和元数据。
- README.md:用于记录项目目的和用途的模板。
创建虚拟环境
uv venv或指定 Python 版本uv venv --python 3.12.3激活虚拟环境.venv\Scripts\activate
增加依赖库
uv add requests fastapi pandas numpy
依赖一旦添加,会自动创建一个名为 uv.lock 的文件。 uv.lock 文件用于记录有关项目依赖项及其确切版本的信息。这个文件非常有用,我在过去几年使用 pyenv 同步其他人的依赖库时,经常碰到依赖冲突问题,有时甚至奔溃到要一个一个尝试哪里出问题了。
移除依赖库
uv remove fastapi
同步依赖库
通常不会将虚拟环境提交到 Git 仓库中,可以使用如下命令来同步其他人的依赖库。可以不用考虑依赖冲突的问题,uv.lock文件会管理所有的版本依赖。
uv sync
执行脚本
uv run main.py
工具安装
uv tool install ruff
工具安装的概念就是将工具后就能像命令行工具一样使用了。
一个简单的对比
uv vs. pip/venv
特性 | uv | pip + venv/virtualenv + pip-tools |
---|---|---|
核心语言 | Rust | Python |
速度 | 极快 (10-100x) | 较慢 |
工具整合 | 单一工具 (安装、环境、部分锁定) | 多个工具组合 |
缓存 | 全局共享缓存,更高效 | pip有缓存,但机制不同 |
兼容性 | 高度兼容pip 命令,pyproject.toml | 标准工具链 |
成熟度 | 新兴,快速发展中 | 非常成熟,生态完善 |
uv
的主要优势在于速度和整合带来的简洁性。虽然它很新,但由ruff
背后强大的团队支持,发展迅猛,值得投入时间去尝试。
结语
uv
为Python开发者提供了一个极具吸引力的新选择,特别是对于那些追求效率和简洁工具链的人。它通过Rust实现了惊人的性能提升,并整合了包管理和虚拟环境的核心功能。"不废话"地说,如果你还没试过uv
,现在就去安装体验一下吧,感受一下pip install
瞬间完成的快感!
随着uv
的不断发展,它很可能成为未来Python项目管理的主流工具之一。
下一步?
- 访问
uv
官方文档: https://astral.sh/uv - 在你的下一个项目中尝试使用
uv
进行包管理。 - 关注 Astral 的博客或GitHub,了解
uv
的最新进展。
希望这篇快速入门能帮你迈出使用uv
的第一步!如果你有任何使用体验或问题,欢迎在评论区交流。干中学!