我收到了同样的错误,这些其他两个问题: ImportError: dynamic module does not define init function, but it does 和 Cython compiled C extension: ImportError: dynamic module does not define init functionpython中动态模块的初始化函数是什么?
但他们的解决方案是不相等的,对我来说并没有正常工作。
我想调用一个共享库的函数,我在我的python程序里面写了c语言。
我编译我的共享库这样的:
gcc -shared -Wl,-soname,playfaircrack.so -o playfaircrack.so -fPIC playfaircrack.c scoreText.o
我创建了一个模块,这个模块里面我加载此lib中有:
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解释器,并调用dir如下:
cracker = ctypes.cdll.LoadLibrary('./playfaircrack.so')
我可以访问我的共享库的功能。
任何想法如何解决这个问题? 谢谢。
好吧。我不能这么做,因为playfair是主程序,playfaircrack是从主程序调用的模块。 –
更新了答案。两个同名的模块不工作。 –
从来没有发生过这样的事情给我。有效。谢谢 :) –