抽象
为具有构建详细信息的静态描述文件引入标准格式 的 Python 安装。
理由
在检查 Python 安装时,运行代码通常是不可取的,或者 不可能的。拥有静态描述文件可以使各种 Python 构建 无需运行解释器即可获得详细信息。
这对于交叉编译、Python 启动器等用例很有帮助。
范围
此 PEP 仅定义一种格式。Python 实现可以选择包含 构建详细信息文件作为其分发的一部分,但不需要, 如何提供该文件的细节完全取决于他们。
规范
标准的 Python 构建描述格式由 JSON 表示形式组成 具有以下键的字典。
schema_version
类型:
number
描述:
用于分析文件内容的架构版本。它应该用于本文档中描述的格式。未来版本 可以添加、删除或更改字段。仅添加字段的版本 可以选择仅将架构版本递增小数 点。1
语言
包含与 Python 语言规范相关的详细信息的小节。
版本
类型:
string
描述:
String 表示 Python 语言版本 — 一个版本 仅由主要和次要组件组成的字符串(例如)。3.13
实现
包含与 Python 实现相关的详细信息的小节。这部分应该是 等同于大多数实现,但仅 实际上需要 AND 键存在。nameversion
名字
类型:
string
描述:
Python 实现的小写名称。
版本
类型:
object
描述:
格式为 的对象,包含 实现版本。
特定于实现的密钥
除了上面定义的键之外,实现还可以选择包括 具有特定于实现的额外详细信息的额外键。
译员
包含详细信息 Python 解释器的小节。如果 Python 安装没有 提供口译员,本节将缺失。
路径
类型:
string
描述:
Python interprer 的路径。绝对路径,或 包含此文件的目录的相对路径,如果 适用。
libpython的
包含与库相关的详细信息的小节。如果 Python 安装不提供库,本节将 失踪。libpythonlibpython
动态
类型:
string
描述:
动态库的路径。要么是绝对的 路径,或包含此文件的目录的相对路径,如果 适用。如果 Python 安装未提供动态库,则此条目将丢失。libpythonlibpython
静态的
类型:
string
描述:
静态库的路径。要么是绝对的 路径,或包含此文件的目录的相对路径,如果 适用。如果 Python 安装未提供静态库,则将缺少此条目。libpythonlibpython
c_api
包含与 Python C API 相关的详细信息的小节(如果可用)。如果 Python 实现不提供 C API,此部分将丢失。
头
类型:
string
描述:
C API 标头的路径。绝对路径,或 包含此文件的目录的相对路径,如果 适用。
例
{ "schema_version": 1, "language": { "version": "3.13" }, "implementation": { "name": "cpython", "version": { "major": 3, "minor": 13, "micro": 1, "releaselevel": "final", "serial": 0 }, "hexversion": 51184112, "cache_tag": "cpython-313", "_multiarch": "x86_64-linux-gnu" }, "libpython": { "dynamic": "/usr/lib/libpython3.13.so.1.0", "static": "/usr/lib/python3.13/config-3.13-x86_64-linux-gnu/libpython3.13.a", }, "c_api": { "headers": "/usr/include/python3.13" } }
被拒绝的想法
范围更大
讨论该 PEP 的主要要求之一是包括 其他类型的信息,例如路径。这是意见 PEP 作者认为有关 Python 环境的信息应该是 由单独的文件提供,从而在构建之间创建清晰的分隔 details,这应该在任何解释器实例中都是不可变的,以及 details 可以更改,例如环境详细信息。site-packages
版权
本文档位于公共领域或 CC0-1.0-通用许可证,以更宽松者为准。
文章声明:以上内容(如有图片或视频在内)除非注明,否则均为腾龙猫勺儿原创文章,转载或复制请以超链接形式并注明出处。
本文作者:猫勺本文链接:https://www.jo6.cn/post/78.html
还没有评论,来说两句吧...