什么是uv工具
uv
是一个用于 Python 包管理的现代工具,它旨在替代 pip
和 virtualenv
,提供更快、更高效的包安装与虚拟环境管理体验。uv
是由 Astral 团队开发的,并逐渐成为 Python 社区中的一个热门替代工具。
简而言之,uv
是一个 超快的 Python 包管理器,它集成了:
- 包安装(替代
pip
) - 虚拟环境管理(替代
virtualenv
) - 锁定文件(兼容
pip-tools
和Poetry
)
uv的优势
🚀 极快的安装速度:基于 Rust 实现,速度比 pip 快上几十倍
📦 自动创建虚拟环境:类似 Poetry,无需手动激活
🔐 锁定依赖:生成
uv.lock
文件,确保可重复构建🐍 兼容性强:兼容
pyproject.toml
,无缝对接现有项目📁 缓存机制优秀:充分利用缓存,加快安装流程
uv工具快速使用
以下是快速上手 uv 的步骤:
安装 uv
Linux
操作系统可以使用以下命令安装
1 | curl -Ls https://astral.sh/uv/install.sh | bash |
如果电脑中安装过Python
,可以直接使用pip
命令安装:
1 | pip install uv |
初始化项目
在桌面创建一个空文件夹uv_test
打开文件夹,右键文件夹空白处,点击在终端打开
输入uv init
即可初始化uv
工程。
1 | uv init |
uv
工程默认会生成4个文件:
.python-version
:记录当前工程的Python
版本。
main.py
:主脚本。
pyproject.toml
:记录当前uv
工程的依赖情况。
README.md
:工程的说明文件。
生成虚拟环境
使用以下命令可以为项目初始化一个Python
虚拟环境,并且可以指定Python
解释器版本。
1 | uv venv --python 3.10 |
你可以通过以下命令直接创建工程并指定
python
解释器版本。
1 uv init uv_test -p 3.10
激活虚拟环境
输入以下命令即可激活虚拟环境
1 | .\.venv\Scripts\activate |
下载第三方库
1 | uv add pandas opencv-python |
输入命令uv tree
,可以查看当前虚拟环境中的依赖树
1 | uv tree |
可以看到前面安装的pandas
和opencv
都安装成功了。
卸载第三方库
例如,卸载pandas
库,使用以下命令
1 | uv remove pandas |
再次查看依赖树
1 | uv tree |
可以看到pandas
库已经被卸载。
执行命令
初始化uv
工程时,它会自动创建一个主脚本main.py
,使用以下命令执行Python
脚本。
1 | uv run main.py |
uv的其他基本命令
uv pip
uv
工具中也有pip
功能可以调用,通过uv pip
进行调用,例如下载pandas
库,也可以使用pip
1 | uv pip install pandas |
通过pip
下载的内容,需要使用以下命令查看依赖列表。
1 | uv pip list |
如果你不适应
uv
的命令,你也完全可以通过uv pip
的方式去调用pip
工具的相关命令,它比原生的pip
命令更为高效。
uv sync
每个uv
工程中都有一个pyproject.toml
文件,用于记录该工程的依赖环境。每次使用uv
命令去下载或者修改依赖都会造成pyproject.toml
文件的变化。
在使用别人的uv
工程时,可以通过uv sync
命令一键克隆其环境依赖(包含Python
版本)。
注意:使用
uv pip
安装的依赖,不会记录在pyproject.toml
文件中。
uv python
uv
可以提前缓存多个版本的python
解释器,通过以下命令进行查看并安装。
1 | # 显示当前已经安装的和可供安装的Python版本 |
已经安装好的,在输出结果中会呈现蓝色。
1 | # 你可以提前缓存python指定版本,这样后续在其他项目中安装Python环境时,不需要下载。 |
1 | # 卸载缓存的指定Python版本 |
1 | # 切换当前工程的Python版本 |
此命令只会先修改
.python-version
文件内容,如果要更新Python
解释器文件,则需要执行uv sync
,因为修改了Python
版本,对应的依赖也需要跟也Python
版本去重新更新。