

uv
是由 Astral 开发的一个极其快速的 Python 包和项目管理工具,使用 Rust 编写。它旨在统一和简化 Python 的包管理、项目管理、Python 版本管理等多个方面,提供类似于 Rust 语言中 Cargo
的功能。
主要功能#
- 包管理:
uv
可以替代pip
、pip-tools
等工具,提供更高效的包安装和解析功能,速度提升可达 10 至 100 倍。 - 项目管理:支持使用
pyproject.toml
文件管理项目依赖,生成跨平台的锁定文件,确保项目环境的一致性。 - 工具管理:类似于
pipx
,uv
可以在隔离的虚拟环境中安装和运行命令行工具,并支持一次性运行无需显式安装的命令。 - Python 版本管理:
uv
能够安装和管理不同版本的 Python,支持快速切换,简化 Python 版本的管理。 - 脚本支持:
uv
可以管理带有内联依赖元数据的单文件脚本,确保脚本在隔离的环境中运行,避免依赖冲突。
安装方法#
Mac 和 Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
sh也可以使用包管理器来进行安装。
Windows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
powershell在 Windows 上更推荐使用 Scoop 来进行安装:
scoop install uv
powershell如果不知道什么是 scoop 可以通过这篇文章 ↗来了解。
除了上面两种方式以外,uv
还可以通过pip
安装:
pip install uv
sh使用指南#
Python 版本管理#
查看支持的 Python 版本
使用以下命令可以查看 uv
支持的 Python 版本:
# 查看所有的可安装版本
uv python list
# 仅查看所有的已安装版本
uv python list --installed
sh这将显示可用的 Python 版本列表,包括不同的主次版本。
安装特定版本的 Python
使用以下命令安装特定版本的 Python,例如安装 Python 3.13:
uv python install 3.13
sh这会下载并安装 Python 3.11 到 uv
的管理路径中。
切换 Python 版本
使用以下命令切换到某个已经安装的 Python 版本,例如 Python 3.13:
uv python use 3.13
bash项目管理#
初始化一个新项目
可以通过以下命令初始化一个名为 my_project
的项目
uv init my_project
cd my_project
sh可以得到一个这样的文件夹:
❯ tree
.
├── hello.py
├── pyproject.toml
└── README.md
sh其中 pyproject.toml
是这个 Python 项目中的配置文件,可以包含以下内容:
- [build-system]: 定义构建项目所需的系统和工具。
- [tool]: 配置各种工具的选项,如格式化工具、测试工具等。
- [project]: 描述项目的元数据,如项目名称、版本、描述等。
添加依赖
以添加依赖 requests
为例:
# 默认安装最新版本的依赖
uv add requests
# 安装指定版本的依赖
uv add requests@1.0.0
sh这个命令会在 pyproject.toml
中的 dependencies
部分添加类似以下内容:
pyproject
[project]
name = "my-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"requests>=2.32.3"
]
toml当从已有的 pyproject.toml
恢复环境时,则需运行:
uv sync
sh删除依赖
以删除依赖 requests
为例:
uv remove requests
sh运行项目#
以演示中所创建的 my_project
为例:
uv run hello.py
sh