Problem polega na tym, że pyinstaller nie widzi importów drugiego poziomu . Więc jeśli zaimportujesz moduł A , pyinstaller widzi to. Ale każdy dodatkowy moduł importowany w A nie będą widoczne.
Nie ma potrzeby zmieniania czegokolwiek w swoich skryptach Pythona. Brakujące importy możesz dodać bezpośrednio do pliku specyfikacji .Po prostu dodaj następujące w a = Analysis(...)
:
hiddenimports=["mysql"],
Taki powinien być wynik:
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), 'icinga.py'],
pathex=['/home/user/projects/icinga_python/releases/v2.1'], hiddenimports=["mysql"],)
Następnie uruchom pyinstaller z plikiem specyfikacji jako argumentem.