Я получаю ту же ошибку из этих двух вопросов: ImportError: dynamic module does not define init function, but it does и Cython compiled C extension: ImportError: dynamic module does not define init functionЧто такое функция init динамического модуля в python?
Но их решения не равны, и не работает для меня.
Я пытаюсь вызвать функции общей библиотеки, которые я написал в c, внутри моей программы python.
Я собирал мой общий LIB, как это:
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 ectly:
cracker = ctypes.cdll.LoadLibrary('./playfaircrack.so')
Я могу получить доступ к функциям моей общей библиотеки.
Любые идеи, как это решить? Спасибо.
Ну. Я просто не могу этого сделать, потому что playfair - основная программа, а playfaircrack - это модуль, который называется из основной программы. –
Обновлен ответ. Два модуля с одинаковым именем не работают. –
Никогда не было такого, как это для меня. Это сработало. Спасибо :) –