Following system colour scheme - Python 增强提案 Selected dark colour scheme - Python 增强提案 Selected light colour scheme - Python 增强提案

Python 增强提案

PEP 241 – Python 软件包元数据

作者:
A.M. Kuchling <amk at amk.ca>
讨论列表:
Distutils-SIG 列表
状态:
已取代
类型:
标准跟踪
主题:
打包
创建:
2001年3月12日
发布历史:
2001年3月19日
取代版本:
314

目录

重要提示

此 PEP 已被 PEP 314 取代。

×

简介

此 PEP 描述了一种向 Python 软件包添加元数据的机制。它包括字段名称、语义和用法的具体信息。

在软件包中包含元数据

Distutils 的“sdist”命令将被修改,以便从参数中提取元数据字段并将其写入生成的 zip 文件或 tarball 中的文件。此文件将命名为 PKG-INFO,并将放置在源发行版的顶层目录中(通常放置 README、INSTALL 和其他文件的位置)。

开发者不得提供自己的 PKG-INFO 文件。“sdist”命令如果检测到已存在的 PKG-INFO 文件,将终止并显示相应的错误消息。这可以防止由 PKG-INFO 和 setup.py 文件不同步引起的混淆。

PKG-INFO 文件格式是一组由 rfc822.py 模块可解析的 RFC 822 标头。以下部分列出的字段名称用作标头名称。此简单格式中没有扩展机制;Catalog 和 Distutils SIG 将致力于为 Python 2.2 准备更灵活的格式。

字段

本节指定每个受支持的元数据字段的名称和语义。

标记为“(可多次使用)”的字段可以在单个 PKG-INFO 文件中多次指定。其他字段只能在 PKG-INFO 文件中出现一次。标记为“(可选)”的字段不需要出现在有效的 PKG-INFO 文件中,所有其他字段都必须存在。

Metadata-Version

文件格式的版本;目前“1.0”是此处唯一合法的值。

示例

Metadata-Version: 1.0

Name

软件包的名称。

示例

Name: BeagleVote

Version

包含软件包版本号的字符串。此字段应可由 distutils.version 模块中的某个 Version 类(StrictVersion 或 LooseVersion)解析。

示例

Version: 1.0a2

Platform(可多次使用)

平台规范的逗号分隔列表,总结了软件包支持的操作系统。下面列出了主要支持的平台,但此列表必然是不完整的。

POSIX, MacOS, Windows, BeOS, Palm OS.

二进制发行版将使用其元数据中的 Supported-Platform 字段来指定为其编译二进制软件包的操作系统和 CPU。Supported-Platform 的语义未在此 PEP 中指定。

示例

Platform: POSIX, Windows

Summary

软件包功能的单行摘要。

示例

Summary: A module for collecting votes from beagles.

Description(可选)

软件包的较长描述,可以包含多个段落。(处理元数据的软件不应假设此字段的任何最大大小,尽管人们希望不会将他们的使用手册作为长描述包含在内。)

示例

Description: This module collects votes from beagles
             in order to determine their electoral wishes.
             Do NOT try to use this module with basset hounds;
             it makes them grumpy.

Keywords(可选)

用于帮助在更大的目录中搜索软件包的其他关键字列表。

示例

Keywords: dog puppy voting election

Home-page(可选)

包含软件包主页 URL 的字符串。

示例

Home-page: http://www.example.com/~cschultz/bvote/

Author(可选)

包含至少作者姓名字符串。还可以添加联系信息,用换行符分隔每一行。

示例

Author: C. Schultz
        Universal Features Syndicate
        Los Angeles, CA

Author-email

包含作者电子邮件地址的字符串。它可以包含合法的 RFC 822 “From:” 标头形式的姓名和电子邮件地址。它不是可选的,因为编目系统可以使用此字段的电子邮件部分作为表示作者的唯一键。编目系统可能会为作者提供存储其 GPG 密钥、个人主页和其他有关作者的附加元数据的功能,以及可选地将多个电子邮件地址与同一个人关联的功能。作者相关的元数据字段不在此 PEP 的范围内。

示例

Author-email: "C. Schultz" <cschultz@example.com>

License

从简短的选择列表中选择的字符串,指定覆盖软件包的许可证。某些许可证会导致软件可自由重新分发,因此打包人员和经销商可以自动知道他们可以自由重新分发软件。其他许可证将需要人工仔细阅读才能确定如何重新打包和转售软件。

选择包括:

Artistic, BSD, DFSG, GNU GPL, GNU LGPL, "MIT",
Mozilla PL, "public domain", Python, Qt PL, Zope PL, unknown,
nocommercial, nosell, nosource, shareware, other

一些许可证的定义如下:

DFSG 许可证符合 Debian 自由软件指南,但不使用此处列出的其他符合 DFSG 的许可证。更多信息可在以下网址找到:http://www.debian.org/social_contract#guidelines
Python Python 1.6 或更高版本的许可证。1.5.2 及更早版本在 MIT 许可证下。
公有领域 软件属于公有领域,不受版权保护。
未知 状态未知
禁止商业用途 免费私人使用,但禁止商业用途
禁止出售 免费使用,但按协议获利分发
无源代码 可自由分发,但无源代码
共享软件 如果使用软件,则要求付款
其他 其他非 DFSG 许可证的一般类别

其中一些许可证可以解释为意味着软件可自由重新分发。可重新分发许可证的列表为:

Artistic, BSD, DFSG, GNU GPL, GNU LGPL, "MIT",
Mozilla PL, "public domain", Python, Qt PL, Zope PL,
nosource, shareware

请注意,可重新分发并不意味着软件包符合自由软件的条件,“无源代码”和“共享软件”就是例子。

示例

License: MIT

致谢

Distutils SIG 阅读者提出了许多对此文档的更改和重写建议。特别是,Sean Reifschneider 经常为包含在此 PEP 中的文本做出贡献。

许可证列表是使用 SourceForge 许可证列表和由 Graham Williams 编制的 CTAN 许可证列表编译的;Carey Evans 也对该列表提出了几个有用的建议。


来源:https://github.com/python/peps/blob/main/peps/pep-0241.rst

上次修改时间:2024年4月14日 13:35:25 GMT