otrzymuję ten sam błąd z tych dwóch pytań: ImportError: dynamic module does not define init function, but it does i Cython compiled C extension: ImportError: dynamic module does not define init functionCo to jest funkcja init modułu dynamicznego w python?
Ale rozwiązania nie są równe, a nie działa dla mnie.
Próbuję wywołać funkcje współużytkowanej biblioteki, które napisałem wc, wewnątrz mojego programu Pythona.
Skompilowałem mojego udostępnionego lib tak:
gcc -shared -Wl,-soname,playfaircrack.so -o playfaircrack.so -fPIC playfaircrack.c scoreText.o
stworzyłem moduł, a wewnątrz tego modułu I załadować ten lib z:
cracker = ctypes.cdll.LoadLibrary('./playfaircrack.so')
Ale kiedy uruchomić kod, otrzymuję następujący błąd:
Traceback (most recent call last):
File "playfair.py", line 2, in <module>
import playfaircrack
ImportError: dynamic module does not define init function (initplayfaircrack)
Co jest bardzo dziwne, ponieważ jeśli uruchomię interpreteer python i wywołać dir ectly:
cracker = ctypes.cdll.LoadLibrary('./playfaircrack.so')
Mam dostęp do funkcji mojej udostępnionej biblioteki.
Wszelkie pomysły na rozwiązanie tego problemu? Dziękuję.
Dobrze. Po prostu nie mogę tego zrobić, ponieważ playfair to główny program, a playfaircrack to moduł wywoływany z głównego programu. –
Zaktualizowano odpowiedź. Dwa moduły o tej samej nazwie nie działają. –
Nigdy nie zdarzyło mi się coś takiego. Zadziałało. Dziękuję Ci :) –