python - cpython-35m-x86_64-linux-gnu.so 是从哪个基本文件类型生成的
问题描述
我试图找到解决一些继承代码的方法。我找到了一个名为:
filename.cpython-35m-x86_64-linux-gnu.so
该文件是从什么文件类型(.py
, .cpp
, .pdx
)编译而来的?是否还有关于每个部分的含义的任何文档cpython-35m-x86_64-linux-gnu.so
?
解决方案
该文件是一个 cpython 扩展名(来自传统名称)。根据所使用的技术,它可以使用正确的工具从几乎任何类型的文件中生成,尽管它最常见的是.c
扩展名。其他常见的是.cpp
(对于 c++ 代码)和.pyx
(对于 cython 模块)。作为可以生成 ac 扩展的不常见文件类型的示例,我编写了 setuptools-golang.go
,它从源代码生成此类文件。
您问题的第二部分是扩展的每个部分的含义。这在PEP 3149中进行了概述,但我将在此处解释每个部分。每个都用破折号 ( -
) 分隔,我将分别解释它们:
cpython
: 这就是“执行”。在这种情况下,这意味着您正在使用在 C python/cpython中实现的最流行的 python 实现。您可能会在此处看到的另一个示例“实现”是pypy3
(对于 pypy 的 3.x 风格)35m
:这是“应用程序二进制接口”标记的第一部分,在这种情况下,它表示这是 python3.5,m
表示 python 是使用编译的pymalloc
x86_64
:这部分 abi 表明它是为 64 位架构编译的,也称为amd64
linux-gnu
:这表示共享对象以 linux 为目标
推荐阅读
- python - 如何使用请求模块 python3 推送键(值)?
- javascript - 如何在 Angular 7 中扩展服务
- c# - 允许 IgnoreQueryFilters 后跟选择查询
- go - 应该返回 Handler 的函数如何返回 HandlerFunc?
- python - Qt - 改变 QSvgWidget 的颜色
- java - 从 gitlab-ci.yml 在远程服务器上启动/停止 tomcat
- php - 在注册 Zizaco/entrust 时添加默认角色
- reactjs - 如何更改 Material-UI 的 Textfield 焦点的值?
- javascript - 如何在更改选择选项时添加/更新 url 参数?
- pyspark - 使用 pip install pyspark 安装时是否有 spark-defaults.conf