PEP 621 元数据#
项目元数据存储在 pyproject.toml
。规范由 PEP 621、PEP 631 和 PEP 639 定义。阅读 PEP 中的详细规格。
在本文档的后续部分中,如果未明确给出,元数据应写在 [project]
表下。
多行描述#
您可以将长描述拆分为多行,这要归功于 TOML 对多行字符串的支持。 只需记住转义换行符,以便最终描述仅出现在包元数据中的一行。 在转义换行符时,缩进也将被移除:
1 2 3 4 5 6 |
|
请参阅 TOML 的字符串规范。
软件包版本#
1 2 |
|
1 2 3 4 5 6 |
|
版本将从 mypackage/__version__.py
文件中读取,查找样式为: __version__ = "{version}"
.
从 pdm-backend
文档中的动态项目版本 获取有关其他配置的更多信息。
Python 版本#
Python 的所需版本被指定为字符串 requires-python
:
1 2 3 4 5 6 7 8 |
|
!!! Note: 根据 PEP 621,
PDM 不允许动态更新 classifiers
部分,就像一些其他不兼容的工具那样。
因此,如果计划在 PyPI 上发布软件包,您还应包括适当的 trove 分类器 如上所示。
许可证#
许可证被指定为字符串 license
:
1 2 3 4 5 |
|
!!! Note: 根据 PEP 621,
PDM 不允许动态更新 classifiers
部分,就像一些其他不兼容的工具那样。
因此,如果计划在 PyPI 上发布软件包,您还应包括适当的 trove 分类器 如上所示。
依赖项规范#
project.dependencies
是遵循 PEP 440 和 PEP 508 的依赖规范字符串数组。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
可选依赖项#
您可以将一些依赖项标记为可选的,这类似于 setuptools
的 extras_require
参数。
1 2 3 4 5 6 7 |
|
要安装一组可选依赖项:
1 |
|
-G
选项可以多次给出以包含多个组。
上下文变量扩展#
取决于您使用的构建后端,PDM 将在依赖字符串中扩展一些变量。
环境变量#
1 2 |
|
1 2 |
|
在 此处 查找更多用法
不必担心凭证泄露,环境变量将在需要时被扩展,并且在锁文件中保持不变。
相对路径#
当您从相对路径添加包时,PDM 将自动将其保存为 pdm-backend
和 hatchling
的相对路径。
例如,如果运行 pdm add ./my-package
,它将在 pyproject.toml
中产生以下行。
1 2 |
|
1 2 |
|
默认情况下,hatchling 不支持 直接引用
在依赖字符串中,您需要在 pyproject.toml
中打开它:
1 2 |
|
当安装或锁定时,相对路径将根据项目根目录进行扩展。
控制台脚本#
以下内容:
1 2 |
|
将被转换为 setuptools
风格:
1 2 3 4 5 |
|
此外,[project.gui-scripts]
将被转换为 setuptools
风格中的 gui_scripts
入口点组。
入口点#
其他类型的入口点通过 [project.entry-points.<type>]
部分给出,具有与 [project.scripts]
相同的格式:
1 2 |
|
如果入口点名称包含点或其他特殊字符,请用引号将其括起来:
1 2 |
|