Я получаю ту же ошибку этих двух других вопросов: ImportError: динамический модуль не определяет функцию инициализации, но определяет и Скомпилированное на Cython расширение C: ImportError: динамический модуль не определяет функцию инициализации
Но их решения не равны и у меня тоже не сработали.
Я пытаюсь вызвать функции общей библиотеки, которую я написал на c, внутри моей программы на python.
Я скомпилировал свою общую библиотеку следующим образом:
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')
Я могу получить доступ к функциям моей общей библиотеки.
Есть идеи, как это решить? Спасибо.