在 Python 世界中,pyproject.toml
文件是一种重要的配置文件格式,用于定义和管理 Python 项目的构建、依赖、元数据等信息。自 Python 3.8 起,该格式被广泛接受,尤其是在使用 PEP 518 提出的构建后端方案时,pyproject.toml
的作用显得尤为重要。
什么是 pyproject.toml
?
pyproject.toml
是一个 TOML 格式的配置文件。TOML(Tom's Obvious, Minimal Language)是一种易于理解和编写的配置文件格式。pyproject.toml
文件可以用来定义项目的构建系统、依赖项、项目元数据等。
创建基本的 pyproject.toml
以下是一个基本的 pyproject.toml
文件示例:
[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "my_project"
version = "0.1.0"
description = "这是一个示例项目"
authors = [{ name = "张三", email = "zhangsan@example.com" }]
license = { text = "MIT" }
readme = "README.md"
requires-python = ">=3.7"
[project.dependencies]
requests = ">=2.25.1"
numpy = ">=1.19.2"
在上面的例子中,我们可以看到几个重要的部分:
-
[build-system]:这是构建系统的配置部分。
requires
定义了构建项目所需的依赖包,build-backend
指定了使用的构建后端,这里我们使用的是setuptools
。 -
[project]:这个部分定义了项目的基本信息,包括名称、版本、描述、作者、许可证等。
-
[project.dependencies]:这里列出了项目的依赖项。在这个例子中,我们的项目依赖
requests
和numpy
包。
使用 pyproject.toml
安装依赖
当我们创建好 pyproject.toml
后,可以通过以下命令安装依赖:
pip install .
这条命令会读取当前目录下的 pyproject.toml
文件,并安装声明的依赖。
自定义构建后端
除了使用 setuptools
,我们还可以选择其他构建后端,如 poetry
或 flit
。以 poetry
为例,我们可以这样配置:
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "my_project"
version = "0.1.0"
description = "这是一个示例项目"
authors = ["张三 <zhangsan@example.com>"]
license = "MIT"
readme = "README.md"
homepage = "https://example.com"
repository = "https://github.com/example/my_project"
keywords = ["example", "project"]
[tool.poetry.dependencies]
python = "^3.7"
requests = "^2.25.1"
numpy = "^1.19.2"
[tool.poetry.dev-dependencies]
pytest = "^6.2"
在这个示例中,我们使用 poetry
作为构建后端,配置了与之前类似的项目元数据和依赖项。
结论
使用 pyproject.toml
文件,我们可以简化项目的管理流程。这种方式不仅使得项目配置更加清晰,而且也增强了与其他工具的集成,如 CI/CD 工具和包管理工具。随着 Python 生态系统的不断发展,学习和掌握 pyproject.toml
的使用将有助于我们更好地管理和构建 Python 项目。