uv 简单上手指南
uv
是近年来新兴的一款 轻量级、高性能、现代化的 Python 包和虚拟环境管理工具,它的目标是部分替代pip
、virtualenv
、pip-tools
、poetry
、pipenv
这类工具,提升开发者的日常体验。下面记录一下我 从零开始 学习
uv
,在 Python 项目中进行包管理的体验。
视频:https://www.bilibili.com/video/BV1ajJ7zPEa5/
一、uv 是什么?
uv
是由 Astral 团队开发的,用 Rust 编写,具有超高的性能。主要功能包括:
- 安装依赖(替代
pip
) - 管理虚拟环境(替代
venv
、virtualenv
) - 支持
pyproject.toml
(兼容poetry
风格) - 更快的包解析与安装(比
pip
、poetry
更快) - 支持缓存加速和并发下载
一句话总结:uv 是现代 Python 项目的全能包管理工具。
竞品比较:
- pip:Python 的官方包管理器,功能全面,但性能较低,且需要开发者手动管理多个步骤。
- rye:全面且现代化的 Python 项目和包管理解决方案,整合了 python 版本管理、自动化依赖管理、python 包管理、自动化虚拟环境管理、项目初始化、python lint 等功能,适合中大型项目或团队使用。
- pip-tools:用于管理 Python 项目依赖的工具集,能帮助开发者生成、更新和锁定项目的依赖版本。
- pipx:专门用于下载和管理 python 应用程序的工具,能下载并运行各种 Python 应用程序,且不会污染系统或项目的环境。
- poetry:主要用于管理 python 项目依赖、打包和发布的工具,旨在简化依赖管理,同时提供一个统一的工作流来创建和分发 Python 包。
- pyenv:用于管理多个 Python 版本的工具。相较于
uv
,pyenv
最大的不同是以源码编译的方式安装 python。
二、uv 的安装
推荐使用 pipx 安装 uv:
pipx install uv
⚠️
pipx
是安装命令行工具的神器,相当于全局环境下的隔离安装,推荐学习和使用。
检查是否安装成功:
uv --version
好家伙,直接集成了Git
三、快速搭建 python 项目环境
查看可用python版本
uv python list
安装python
uv python install [python_version]
初始化新项目
新项目的目录下会生成 pyproject.toml
、.python-version
文件。
uv init (项目名)
同步依赖
根据 pyproject.toml
安装或更新依赖
uv sync
安装依赖
相比于 pip install
,uv add
提供了更高层次的自动化,能自动管理虚拟环境和更新 pyproject.toml
文件。
uv add [module]
查看依赖树
相比于 pip list
提供了更详细的依赖关系信息,且能以树状结构展示。
uv tree
移除依赖
相比于 pip uninstall
更智能,在卸载指定包后,还会检测并删除未使用的依赖项。
uv remove [module]
四、管理和运行 python 项目
运行项目或脚本
可以在不显式激活虚拟环境的情况下,在项目的虚拟环境中执行任何命令或脚本。
uv run [.py]
安装/卸载命令行工具
安装后这些工具会被自动放进 .venv/bin/
(或 Windows 下的 Scripts/
),可直接用。
安装:
uv tool instal [...]
卸载:
uv tool uninstall [...]
创建临时虚拟环境
是 uv tool run
的简写,能调用 Python 包中的实用工具,并且不会影响当前项目环境,类似于 pipx
。
uvx
运行临时脚本
uv init --script [.py]
修改文件,添加必需依赖
uv run [.py]
将项目的锁文件导出为其他格式
将项目的锁文件导出为其他格式,如 requirements.txt
。
uv export