pyproject.toml。
配置文件,用于定义 Python 项目构建系统及相关元数据。它是 Python 为了解决项目建设和依赖管理问题,社区引入了一种标准化的方法,最初由 PEP 518 提出。pyproject.toml。
#xff00文件被广泛使用c;特别是在建筑工具(中;如。 Poetry。
和。 Flit。
)中,用于替代传统 。setup.cfg。
文件。
构建系统的定义。:
pyproject.toml。
构建工具及其版本可在文件中指定,如。 setuptools。
或。 poetry。
,以及这些工具所需的依赖项。这使得项目的建设环境更加可控和可重复。项目元数据。:
pyproject.toml。
文件中的定义。构建工具或包管理工具可以读取和使用这些信息。依赖管理。:
requirements.txt。
,但更结构化、更灵活。配置施工工具的行为。:
setuptools。
、。poetry。
、。black。
、。isort。
等,可以在。 pyproject.toml。
配置其行为。典型的。 pyproject.toml。
文件由几个部分组成,不同的功能和配置信息对应于每个部分。以下是LlamaFactory示例:
[build-system]requires = ["setuptools>=61.0"]build-backend = "setuptools.build_meta"[tool.ruff]target-version = "py38"line-length = 119indent-width = 4[tool.ruff.lint]ignore = ["C408", "C901", "E501", "E731", "E741", "W605"]select = ["C", "E", "F", "I", "W"][tool.ruff.lint.isort]lines-after-imports = 2known-first-party = ["llamafactory"]known-third-party = [ "accelerate", "datasets", "gradio", "numpy", "peft", "torch", "transformers", "trl"][tool.ruff.format]quote-style = "double"indent-style = "space"docstring-code-format = trueskip-magic-trailing-comma = falseline-ending = "auto"
这个。 pyproject.toml。
pyproject.toml。 该文件配备了项目的构建系统和使用。
ruff。
1.。
[build-system]。
requires。 : 指定项目建设系统依赖项目。需要在这里使用。
setuptools。 版本 61.0 或者更高的版本。这意味着在建设这个项目时,Python 必须在环境中安装。
setuptools。
,而且版本不低于 61.0。
build-backend。 : 为建设项目指定后端工具,这里用的是。
setuptools.build_meta。 。这意味着。
setuptools。
2.。
[tool.ruff]。
target-version。: 指定代码的目标 Python 版本,这里是 Python 3.8 (。
py38。)。
ruff。
将根据此版本进行相应的检查和优化。
line-length。
: 指定代码行的最大长度,超过此长度将被视为格式错误。这里设置为 119 个字符。
indent-width。
3.。
[tool.ruff.lint]。
ignore。
: 指定了一些要忽略的规则或错误代码。代码检查时不会触发列出的错误代码。
select。
4.。
[tool.ruff.lint.isort]。
lines-after-imports。
: 指定导入句子后应保留的空行数,这里设置为 2 行。
known-first-party。 : 列出了项目中的第一个模块,即。
llamafactory。
,在导入排序中识别项目内部的模块。
known-third-party。
5.。
[tool.ruff.format]。
quote-style。 : 使用指定字符串的引号样式,设置在这里。
double。
,即双引号。
indent-style。 : 指定缩进风格这里使用。
space。 (空格)而非。
tab。
。
docstring-code-format。 : 设置为。
true。
,表示文档字符串(docstring)代码格式化规则也将应用于中间。
skip-magic-trailing-comma。 : 设置为。
false。
,这意味着即使添加了魔术尾逗号(magic trailing comma),也不会跳过格式化。
line-ending。 : 设置为。
auto。
小结。 这个。
pyproject.toml。 文件主要配置项目建设系统,并且定义得很详细。
ruff。
工作流程。 在执行。
pip install .。时,
pyproject.toml。
识别。
pyproject.toml。在项目的根目录中执行。
pip install .。命令时c;
pip。 将首先检查目录下是否存在。
pyproject.toml。如果有这个文件,
pip。解析。
build-system。部分。
pip。 首先读取。
pyproject.toml。 文件中的。
[build-system]。 部分。这部分定义了建设项目所需的依赖项和建设后端(即构建工具)。
requires。 : 列出了本项目建设所需的内容 Python 包。在执行。
pip install .。时,
pip。确保这些袋子已安装好。如果这些包没有安装,
pip。这些依赖性将首先安装。
build-backend。 : 指定建设项目使用的后端工具,比如。
setuptools.build_meta。 或。
poetry.core.masonry.api。。
pip。一旦。
pip。 如果使用。
setuptools.build_meta。 ,它将读取项目的目的。
setup.py。 或。
setup.cfg。安装项目。
pip。如果项目依赖于其他包
pip。 会从。
pyproject.toml。 或。
setup.py。 中的。
install_requires。其它工具配置。
pyproject.toml。 其他部分,如。
[tool.ruff]。 ,在施工或开发过程中,可能会引用相应的工具。虽然这些部分不会直接影响。
pip install .。简化执行流程。
pip。 检查并加载。
pyproject.toml。解析。
build-system。总结。
pyproject.toml。 文件在。
pip install .。 在这个过程中会被接受。
pip。引用,确定如何构建和安装工程。
pip。 主要用于其中。
[build-system]。