小编Nak*_*ura的帖子

将 python 代码转换为共享对象

我想从 python 模块准备一个共享对象(.so)。我遇到了 Cython,它 a) 首先将 *.pyx 模块转换为 *.c 代码,b) 然后这个 *.c 代码将转换为共享对象 (.so)。Cython 的所有示例都说明了如何将这个 .so 导入到 python 中。

\n\n

但是,我有兴趣从 C 代码中读取这个共享对象。当我编写示例 C 代码来读取 .so 时,它会抛出一个错误,指出 .pyx 中实际存在的方法并不存在于 .so 对象中。

\n\n

我想知道 \na) 是否可以从不同的语言(例如 C)读取 Cython 的共享对象 \nb) 而且,如果上述语句为 True,我必须在代码中进行哪些更改,以便我将能够从 C 读取共享对象。

\n\n

谢谢,

\n\n

Python代码(保存为square_number.pyx)

\n\n
def square_me(int x):\n    return x * x\n
Run Code Online (Sandbox Code Playgroud)\n\n

Cython 对应的 setup.py 文件

\n\n
from distutils.core import setup\nfrom Cython.Build import cythonize\n\nsetup(\n    ext_modules=cythonize("square_number.pyx"),\n     )\n
Run Code Online (Sandbox Code Playgroud)\n\n

将上述 .pyx 转换为 .So 的命令行语句(通过 cython)

\n\n
python setup.py …
Run Code Online (Sandbox Code Playgroud)

c python cpython

6
推荐指数
1
解决办法
7078
查看次数

标签 统计

c ×1

cpython ×1

python ×1