【发布时间】:2013-06-04 02:18:05
【问题描述】:
我遇到了与其他两个问题相同的错误: ImportError: dynamic module does not define init function, but it does 和 Cython compiled C extension: ImportError: dynamic module does not define init function
但他们的解决方案并不相同,对我也不起作用。
我正在尝试在我的 python 程序中调用我用 c 编写的共享库的函数。
我这样编译我的共享库:
gcc -shared -Wl,-soname,playfaircrack.so -o playfaircrack.so -fPIC playfaircrack.c scoreText.o
我创建了一个模块,在这个模块中我加载了这个库:
cracker = ctypes.cdll.LoadLibrary('./playfaircrack.so')
但是当我运行代码时,我得到以下错误:
Traceback (most recent call last):
File "playfair.py", line 2, in <module>
import playfaircrack
ImportError: dynamic module does not define init function (initplayfaircrack)
这很奇怪,因为如果我运行python解释器,直接调用:
cracker = ctypes.cdll.LoadLibrary('./playfaircrack.so')
我可以访问我的共享库的功能。
任何想法如何解决这个问题? 谢谢。
【问题讨论】: