O problema é que o pyinstaller não verá importações de segundo nível . Então, se você importar o módulo A , o pyinstaller vê isso. Mas qualquer módulo adicional importado em A não será visto.
Não há necessidade de alterar nada em seus scripts python. Você pode adicionar diretamente as importações ausentes ao arquivo de especificação .Basta adicionar o seguinte em
a = Analysis(...)
:hiddenimports=["mysql"],
Este deve ser o resultado:
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"],)
Depois disso, execute o pyinstaller com o arquivo spec como argumento.