PEP 739 – 用于 Python 安装构建详细信息的静态描述文件

猫勺猫勺 03-28 184 阅读 0 评论

抽象

为具有构建详细信息的静态描述文件引入标准格式 的 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-通用许可证,以更宽松者为准。


The End 微信扫一扫

文章声明:以上内容(如有图片或视频在内)除非注明,否则均为腾龙猫勺儿原创文章,转载或复制请以超链接形式并注明出处。

本文作者:猫勺本文链接:https://www.jo6.cn/post/78.html

上一篇 下一篇

相关阅读

发表评论

访客 访客
快捷回复: 表情:
评论列表 (暂无评论,184人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码