Python的UV工具介绍
UV(Ultra-Violet)是Python生态中一款新兴的轻量级包管理工具,旨在替代pip和pip-tools,提供更快的依赖解析与安装速度,支持多平台和锁定文件机制。
假设你的机器上只有:
Python 3.13
执行:
uv init my-api --python 3.15
uv 会:
- 创建项目目录
- 生成
pyproject.toml - 生成
.python-version
类似:
[project]
name = "my-api"
requires-python = ">=3.15"
.python-version
3.15
此时通常还不会检查本机是否安装了 3.15。
真正需要 Python 3.15 的时候是在后面执行:
uv sync
或者:
uv run python
这时 uv 会:
- 查找本地是否有 3.15
- 没有的话自动下载 3.15
- 创建
.venv
例如:
Downloading cpython-3.15.x
Creating virtual environment...
Installed packages...
整个过程通常是自动完成的。
一个完整例子
假设全新机器:
系统只有 Python 3.13
执行:
uv init my-api --python 3.15
cd my-api
uv add "fastapi[standard]"
uv sync
当 uv sync 发现:
需要 Python 3.15
本机没有
会自动下载:
cpython-3.15.x
然后创建:
my-api/
├── .venv
├── .python-version
├── pyproject.toml
└── uv.lock
此时:
uv run python --version
输出:
Python 3.15.x
唯一容易报错的情况
如果你显式禁止下载:
uv sync --no-python-downloads
或者配置了:
python-downloads = "never"
那么本机没有 3.15 时会报错:
No interpreter found for Python 3.15
所以正常情况下:
uv init my-api --python 3.15
即使电脑上没有 Python 3.15,也不会有问题;等到 uv sync 时,uv 会自动帮你安装对应版本的 Python。