uv 入门指南
之前尝试过 venv、pyenv、poetry 等等虚拟环境管理工具,使用之后或多或少都有一些问题。 遇到了 uv 之后,发现这个工具更加好用,所以开始将自己的项目的虚拟环境全部更换为 uv。
uv 是由 Astral 团队开发的一款现代换的 Python 虚拟环境管理与打包(packing)工具。(Astral 还有一款工具叫 ruff)
uv 相比其他的虚拟环境管理工具,有以下特点:
- ⚡️ 安装速度快,快到 10–100 倍!
- 🐍 可以管理 Python 版本,一件安装所有版本的 Python 解释器。
- 🚀 可以管理虚拟环境,还可以为虚拟环境指定 Python 版本
- 💾 强大的全局缓存,节省磁盘空间。
- 🔩 兼容 pip、venv 等工具。
我为什么会从 poetry 更换到 uv
- uv 出现的相对较晚,没有 poetry 那么多的历史包袱。
- uv 速度更快(使用 rust 编写)。
- uv 指令简洁、易用
- 没有 poetry 那么多的 breaking change。
常用指令
shell
$ uv -help
Commands:
run 运行命令或脚本
init 创建一个 python 项目
add 添加项目依赖
remove 移除项目依赖
sync 更新项目环境
lock 更新项目 lock 文件
export 将项目的 lock 文件导出为其他格式
tree 显示项目依赖树
tool 运行并安装 Python 包提供的命令
python 管理和安装 Python 版本
pip 管理与 pip 兼容的界面管理 Python 包
venv 创建虚拟环境
build 将 Python 包构建为源码分发包和组件
publish 将分发包上传到包管理平台
cache 管理 uv 缓存
self 管理 uv 可执行文件
version 查看 uv 版本
help 查看帮助命令
python 版本管理
shell
uv python list # 列出 Python 的可用版本
uv python install 3.13 # 安装指定版本 python 解释器
uv python pin 3.13 # 切换到指定版本解释器(uv 命令下环境生效)
uv python uninstall 3.10 # 卸载指定的版本
虚拟环境管理
新项目创建虚拟环境
shell
uv init
同步项目依赖
shell
uv sync
激活虚拟环境
shell
source .venv/bin/activate # linux
.venv\Script\activate # windows
运行 python 代码(使用虚拟环境)
shell
uv run main.py
添加依赖
shell
uv add flask
删除依赖
shell
uv remove flask
工具管理
uv 的 uv tool install 和 uvx(uv tool run 的别名)可以在隔离的虚拟环境中安装命令行工具, 速度比 pipx 更快。无需显式安装即可执行一次性命令,为开发者提供了更加便捷的工具使用方式。
a
shell
uv tool install ruff
shell
uvx ruff check .\main.py
修改镜像源
项目配置
pypi 添加清华源
打开项目中的 pyproject.toml 文件,在最后添加以下内容:
shell
[[index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/"
default = true
运行 uv add 命令的时候也可以指定镜像源
shell
uv add --default-index https://pypi.tuna.tsinghua.edu.cn/simple flask
全局配置
uv 也提供了全局的配置项,可以通过环境变量 UV_DEFAULT_INDEX 配置镜像源
shell
export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple