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

Python 增强提案

PEP 314 – Python 软件包元数据 1.1

作者:
A.M. Kuchling, Richard Jones
讨论至:
Distutils-SIG 邮件列表
状态:
已取代
类型:
标准跟踪
主题:
打包
创建日期:
2003年4月12日
Python 版本:
2.5
发布历史:
2003年4月29日
取代:
241
取代者:
345

目录

重要

本 PEP 是一份历史文档。最新且权威的规范,核心元数据规范,维护在 PyPA 规范页面上。

×

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

引言

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

本文档指定元数据格式的1.1版本。1.0版本在PEP 241中指定。

在软件包中包含元数据

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

开发者不得提供他们自己的PKG-INFO文件。sdist命令如果检测到现有的PKG-INFO文件,将以适当的错误消息终止。这应该防止因PKG-INFO和setup.py文件不同步而造成的混淆。

PKG-INFO文件格式是一组可由rfc822.py模块解析的RFC 822头。以下部分列出的字段名称用作头名称。

字段

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

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

元数据版本(Metadata-Version)

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

示例

Metadata-Version: 1.1

名称

软件包的名称。

示例

Name: BeagleVote

版本

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

示例

Version: 1.0a2

平台(Platform)(多重使用)

一个逗号分隔的平台规范列表,总结了软件包支持的操作系统,这些操作系统未在“操作系统”Trove分类器中列出。参见下文“分类器”。

示例

Platform: ObscureUnix, RareDOS

支持平台(多用)

包含PKG-INFO文件的二进制分发将在其元数据中使用Supported-Platform字段来指定编译二进制软件包的操作系统和CPU。Supported-Platform字段的语义未在本PEP中指定。

示例

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791

总结

对软件包功能的单行摘要。

示例

Summary: A module for collecting votes from beagles.

描述(Description)(可选)

对软件包的较长描述,可以跨越几段。处理元数据的软件不应假设此字段有任何最大大小,尽管人们不应将他们的说明手册作为描述。

此字段的内容可以使用reStructuredText标记[1]编写。对于处理元数据的程序,支持标记是可选的;程序也可以按原样显示字段内容。这意味着作者应该保守地使用标记。

示例

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/

下载URL

包含可以下载此版本软件包的URL的字符串。(这意味着URL不能是“…/package-latest.tgz”之类的,而必须是“../package-0.45.tgz”。)

作者(Author)(可选)

至少包含作者姓名的字符串;可以提供额外的联系信息。

示例

Author: C. Schultz, Universal Features Syndicate,
        Los Angeles, CA <cschultz@peanuts.example.com>

作者邮箱

包含作者电子邮件地址的字符串。它可以包含RFC 822“From:”头合法形式的姓名和电子邮件地址。它不是可选的,因为分类系统可以使用此字段的电子邮件部分作为代表作者的唯一键。目录可以提供作者存储其GPG密钥、个人主页以及其他有关作者的额外元数据的能力,并可选地将多个电子邮件地址与同一个人关联。本PEP不涵盖与作者相关的元数据字段。

示例

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

许可

指示软件包所涵盖许可证的文本,其中许可证不是“许可证”Trove分类器中的选择。参见下文“分类器”。

示例

License: This software may only be obtained by sending the
         author a postcard, and then the user promises not
         to redistribute it.

分类器(多用)

每个条目是一个字符串,为软件包提供一个分类值。分类器在PEP 301中描述。

示例

Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console (Text Based)

要求(多用)

每个条目包含一个字符串,描述此软件包所需的其他模块或软件包。

需求字符串的格式与可与“import”语句一起使用的模块或软件包名称的格式相同,可选地后跟括号内的版本声明。

版本声明是一系列条件运算符和版本号,以逗号分隔。条件运算符必须是“<”、“>”、“<=”、“>=”、“==”和“!=”之一。版本号必须是distutils.version.StrictVersion类接受的格式:两个或三个点分隔的数字组件,末尾带有一个可选的“预发布”标签,由字母“a”或“b”后跟一个数字组成。示例版本号是“1.0”、“2.3a2”、“1.3.99”。

可以指定任意数量的条件运算符,例如,字符串“>1.0, !=1.3.4, <2.0”是合法的版本声明。

以下都是可能的需求字符串:“rfc822”、“zlib (>=1.1.4)”、“zope”。

没有哪些字符串应该使用的规范列表;Python社区自行选择其标准。

示例

Requires: re
Requires: sys
Requires: zlib
Requires: xml.parsers.expat (>1.0)
Requires: psycopg

提供(多用)

每个条目包含一个字符串,描述此软件包安装后将提供的软件包或模块。这些字符串应与Requirements字段中使用的字符串匹配。可以提供版本声明(不带比较运算符);如果未指定,将隐含软件包的版本号。

示例

Provides: xml
Provides: xml.utils
Provides: xml.utils.iso8601
Provides: xml.dom
Provides: xmltools (1.3)

废弃(多用)

每个条目包含一个字符串,描述此软件包将废弃的软件包或模块,这意味着这两个软件包不应同时安装。可以提供版本声明。

此字段最常见的用途是软件包名称更改的情况,例如,Gorgon 2.3被并入Torqued Python 1.0。当您安装Torqued Python时,Gorgon软件包应该被删除。

示例

Obsoletes: Gorgon

与PEP 241的不同之处摘要

  • 元数据版本现在是1.1。
  • 添加了来自PEP 301的Classifiers字段。
  • License和Platform文件现在只应在平台或许可证无法通过适当的分类器值处理时使用。
  • 添加了字段:Download-URL、Requires、Provides、Obsoletes。

开放问题

无。

致谢

无。

参考资料


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

最后修改:2025-02-01 08:55:40 GMT