我看到了和这两个问题相同的错误信息:
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语言写的共享库中的函数。
我像这样编译我的共享库:
我创建了一个模块,在这个模块内,我使用以下代码加载了这个库:
但是当我运行代码时,我收到了以下错误信息:
非常奇怪,因为如果我运行Python解释器并直接调用以下命令:
我正在尝试在我的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')
我可以访问我的共享库的函数。
有什么想法如何解决这个问题? 谢谢。