用 uv 管 Python 环境:一份最小工作流
技术
2026.10.12
技术
用 uv 管 Python 环境:一份最小工作流
从创建项目、添加依赖到运行脚本,记录一套不折腾的 uv 日常用法。
本文目录
这两年 Python 环境管理最明显的变化,是 uv 把「建环境、装包、锁版本、跑脚本」收进了一个命令里。
这篇只记我日常用到的部分,不展开原理。
安装
curl -LsSf https://astral.sh/uv/install.sh | sh
安装后确认:
uv --version
uv python list
新建项目
uv init my-project
cd my-project
会得到 pyproject.toml 和一个 .python-version。如果不想用默认的 Python 版本:
uv python install 3.12
uv python pin 3.12
添加依赖
uv add requests httpx
uv add --dev pytest ruff
uv add 会同时更新 pyproject.toml 和 uv.lock。提交时两个都进版本库。
运行
uv run python main.py
uv run pytest
uv run ruff check .
uv run 会自动确保环境与 lock 文件一致,不需要先手动激活虚拟环境。
同步与升级
uv sync # 按 lock 文件同步环境
uv lock --upgrade # 升级依赖并重新锁定
uv tree # 查看依赖树
一个够用的 pyproject
[project]
name = "my-project"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = [
"httpx>=0.27",
"requests>=2.32",
]
[dependency-groups]
dev = [
"pytest>=8.0",
"ruff>=0.6",
]
小结
如果只是写脚本,uv run script.py 已经足够。需要长期维护的项目,再把 lock 文件和 pyproject.toml 一起认真管理。