我收到了同樣的錯誤,這些其他兩個問題: 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是從主程序調用的模塊。 –
更新了答案。兩個同名的模塊不工作。 –
從來沒有發生過這樣的事情給我。有效。謝謝 :) –