Python 2.7相当于importlib.machine.EXTENSION_后缀
我想使用Python3中的Python 2.7相当于importlib.machine.EXTENSION_后缀,python,python-2.7,Python,Python 2.7,我想使用Python3中的importlib.machine.EXTENSION\u后缀,但不幸的是我使用的是Python2.7 EXTENSION_后缀的计算结果为['.cpython-34m-x86_64-linux-gnu.so'、'.cpython-34m.so'、'.abi3.so'、'.so'],但这是特定于我的机器,可能是python版本的,因此我不能简单地硬编码列表 这里是Python 3源代码中内置的扩展后缀。然而,它似乎深入到了C实现()中,所以我不清楚如何获得这些信息 如何
importlib.machine.EXTENSION\u后缀
,但不幸的是我使用的是Python2.7
EXTENSION_后缀
的计算结果为['.cpython-34m-x86_64-linux-gnu.so'、'.cpython-34m.so'、'.abi3.so'、'.so']
,但这是特定于我的机器,可能是python版本的,因此我不能简单地硬编码列表
这里是Python 3源代码中内置的扩展后缀。然而,它似乎深入到了C实现()中,所以我不清楚如何获得这些信息
如何在Python 2.7中获得此列表?请改用:
返回3元素元组的列表,每个元组描述特定类型的模块。每个三元组都有形式(后缀、模式、类型),其中后缀是要附加到模块名称的字符串,以形成要搜索的文件名,模式是要传递给内置open()函数以打开文件的模式字符串(对于文本文件可以是“r”,对于二进制文件可以是“rb”),类型是文件类型,其中有一个值PY_SOURCE,PY_编译,或C_扩展,如下所述
因此,要将其过滤到C扩展模块的后缀列表中:
import imp
extension_suffixes = [suffix for (suffix, mode, type) in imp.get_suffixes()
if type == imp.C_EXTENSION]
这也适用于Python3,尽管Python3中不推荐使用imp