跳转至

配置项目元数据


项目元数据存储在位于项目树根部的 pyproject.toml 文件中,完全基于标准

名称 (required)

项目的名称。

[project]
name = "your-app"

版本号 (required)

请参阅专门的 版本管理 部分。

[project]
...
dynamic = ["version"]

[tool.hatch.version]
path = "..."
[project]
...
version = "0.0.1"

描述

该项目的简要概述。

[project]
...
description = '...'

Readme

项目的完整描述。

文件扩展名必须是“.md”、“.rst”或“.txt”。

[project]
...
readme = "README.md"

content-type 字段必须设置为 text/markdowntext/x-rsttext/plain

还可以设置“charset”字段来指示使用哪种编码来读取文件,默认为“utf-8”。

[project]
...
readme = {"file" = "README.md", "content-type" = "text/markdown"}

content-type 字段必须设置为 text/markdowntext/x-rst

[project]
...
readme = {"text" = "...", "content-type" = "text/markdown"}

Note

如果将其定义为文件,则它将始终包含在源分发中以实现一致的构建。

Python 支持

项目的Python版本要求。

[project]
...
requires-python = ">=3.8"

许可

更多信息请参阅PEP 639

[project]
...
license = "Apache-2.0 OR MIT"
[project]
...
license-files = ["LICENSES/*"]

所有权

被视为项目“作者”或“维护者”的个人或组织。其确切含义尚有待进一步解释;它可能列出软件包的原始或主要作者、当前维护者或所有者。如果值相同,则仅使用“authors”字段。

[project]
...
authors = [
  { name = "...", email = "..." },
]
maintainers = [
  { name = "...", email = "..." },
]

关键字

用于协助发现项目的关键词。

[project]
...
keywords = [
  "...",
]

分类

适用于项目的 trove 分类器

[project]
...
classifiers = [
  "...",
]

URLs

URL 表,其中键是 URL 标签,值是 URL 本身。

[project.urls]
Documentation = "..."
"Source code" = "..."

依赖项

如需了解更多信息,请参阅依赖项规范页面。

条目默认支持上下文格式禁止直接引用

必须的

[project]
...
dependencies = [
  "...",
]

可选的

[project.optional-dependencies]
option1 = [
  "...",
]
option2 = [
  "...",
]

入口点

入口点 是项目用来宣传其提供的组件以供其他代码发现和使用的一种机制。

CLI

安装定义 CLI 脚本的项目后,每个键都将沿着“PATH”作为调用其关联对象的命令提供。

[project.scripts]
cli-name = "pkg.subpkg:func"

使用上面的例子,运行 cli-name 基本上会执行以下 Python 脚本:

import sys

from pkg.subpkg import func

sys.exit(func())

GUI

GUI 脚本与 CLI 脚本完全相同,但 Windows 除外,在 Windows 上它们经过特殊处理,因此无需控制台即可启动。

[project.gui-scripts]
gui-name = "pkg.subpkg:func"

插件

[project.entry-points.plugin-namespace]
plugin-name1 = "pkg.subpkg1"
plugin-name2 = "pkg.subpkg2:func"

动态的

如果任何元数据字段是动态设置的,例如 version,那么它们必须在此处列出。

[project]
...
dynamic = [
  "...",
]

元数据选项

允许直接引用

默认情况下,依赖项 不允许定义 直接引用。要禁用此检查,请将 allow-direct-references 设置为 true

[tool.hatch.metadata]
allow-direct-references = true
[metadata]
allow-direct-references = true

允许模棱两可的特征

默认情况下,可选依赖项 的名称会被规范化以避免出现歧义。要禁用此规范化,请将 allow-ambiguous-features 设置为 true

[tool.hatch.metadata]
allow-ambiguous-features = true
[metadata]
allow-ambiguous-features = true

已弃用

此选项暂时存在,以便与尚不支持 PEP 685 的工具提供更好的互操作性,并将在 2024 年 1 月 1 日之后的第一个次要版本中被删除。