执行C模块的二进制字符串


有人用Nuitka为python创建了一个C模块。(原始的Python代码不可用,模块已经编译好了,所以它是一个机器二进制文件。(我想在另一个工具中使用该代码,它只包括Python文件。因此,我想将C代码包含到Python中。

更具体地说:到目前为止,我有文件thatmodule.pyi和一个thatmodule.so。我只需在mymodule.py中运行import thatmodule,就可以将它们包含到我当前的Python代码中。现在我只想要一个单独的Python文件mymodule.py

我目前的想法是将代码从thatmodule.pyi复制到mymodule.py的开头,并使用将thatmodule.so转换为二进制字符串

with open('thatmodule.so', mode='rb') as file:
fileContent = file.read()
... missing ... how to convert fileContent to b'string'...

并将该二进制字符串放入CCD_ 9中。然后我必须在我的python模块mymodule.py中执行这个二进制字符串。我该怎么做?

您必须将其写入一个文件(可能还有.pyi(,然后使用python的importlib动态导入。

如果您有描述thatmodule.so功能的文档,您可以使用以下内容:

import ctypes
mylib = ctypes.CDLL("thatmodule.so")

此处的文档

最新更新