python环境|官方pyproject.toml
pyproject.toml 是 Python 生态中现代项目的核心配置文件,其设计初衷是统一和替代以往分散的 setup.py、setup.cfg、requirements.txt、Pipfile、tox.ini 等多个文件
pyproject优势
| 传统方式 (多个文件) | pyproject.toml (单文件) |
|---|---|
setup.py (动态执行,风险高) | 声明式配置,安全、可解析 |
setup.cfg | 统一纳入 [project] 或 [tool] |
requirements.txt | dependencies 字段 |
Pipfile / Pipfile.lock | 由 Poetry/PDM/uv 等工具生成锁文件 |
.coveragerc, .flake8, pytest.ini 等 | 分散的配置,现在可放入 [tool.*] |
pyproject和uv区别
- pyproject.toml
是一个文件(就像 requirements.txt 的升级版),里面写着你的项目需要哪些包、需要哪个版本的 Python。
- uv
是一个工具(就像 pip + venv + pyenv 的合体),它会读取 pyproject.toml 这个文件,然后帮你创建环境、安装依赖、运行项目
有了 uv,还需要手动写 pyproject.toml?
uv 会自动帮你生成和维护 pyproject.toml

声明基本信息
[project]
name = "my-awesome-project"
version = "1.0.0"
description = "Do something great"
authors = [{ name = "Your Name", email = "you@example.com" }]
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.9"
管理项目依赖
dependencies = [
"requests>=2.28",
"click>=8.0"
]
