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 是一份历史文档。最新且权威的规范,核心元数据规范,维护在 PyPA 规范页面上。

×

有关如何提出更改的建议,请参阅PyPA 规范更新流程

引言

本PEP描述了一种为Python软件包添加元数据的机制。它包括字段名称及其语义和用法的具体细节。

在软件包中包含元数据

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

开发者不得提供自己的PKG-INFO文件。如果“sdist”命令检测到现有的PKG-INFO文件,它将终止并显示适当的错误消息。这应该可以防止因PKG-INFO和setup.py文件不同步而导致的混淆。

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

字段

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

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

元数据版本(Metadata-Version)

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

示例

Metadata-Version: 1.0

名称

软件包的名称。

示例

Name: BeagleVote

版本

一个包含软件包版本号的字符串。此字段应可由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: 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>

许可

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

选择项是

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许可证保护。
公共领域(public domain) 软件为公共领域,不受版权保护。
未知(unknown) 状态未知
不可商用(nocommercial) 免费私人使用,但禁止商业使用
不可销售(nosell) 免费使用,但分发以盈利需经安排
无源代码(nosource) 可自由分发,但无源代码
共享软件(shareware) 如果使用软件,则要求付费
其他(other) 其他非DFSG许可证的通用类别

其中一些许可证可以解释为软件可以自由再分发。可再分发许可证列表是

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

请注意,可再分发并不意味着软件包符合自由软件的条件,“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-10-06 16:27:00 GMT