I want to generate an executable from my python code using mayavi and pyqt5 on windows 10. There was no issue generating the app with only pyqt5, however when I added the mayavi stuff (embedded my mayavi stuff into my pyqt GUI), pyinstaller generated the executable but it fails when I try to start it up. Below you can see the traceback of the error message. The complete application however runs when I start it up from my python IDE as pure python code. With pyinstaller I could not get it to run so far.
Traceback (most recent call last):
File "mayavi_qt_test.py", line 24, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "traitsui\api.py", line 256, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "traitsui\editors\__init__.py", line 16, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "traitsui\editors\api.py", line 86, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "traitsui\editors\code_editor.py", line 21, in <module>
File "traitsui\editors\code_editor.py", line 33, in CodeEditor
File "traits\trait_factory.py", line 40, in __call__
File "traitsui\toolkit_traits.py", line 43, in ColorTrait
File "traitsui\toolkit.py", line 110, in toolkit
File "pyface\base_toolkit.py", line 282, in find_toolkit
File "pyface\base_toolkit.py", line 216, in import_toolkit
File "importlib_metadata\__init__.py", line 403, in __getitem__
KeyError: 'traitsui.toolkits'
I already tried to add hidden imports and additional data (pyface and traits) in the spec-file:
a = Analysis(['mayavi_qt_test.py'],
pathex=[source_path],
binaries=[],
datas=[],
hiddenimports=[
'importlib_metadata',
'importlib_resources',
'pyface',
'pyface.toolkit',
'traitsui',
'traitsui.qt4',
'traitsui.qt4.toolkit',
'traitsui.toolkit',
'traitsui.ui_traits',
],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
datas=[
('%s\traitsui' % source_path, 'traitsui'),
('%s\traitsui-7.2.1.dist-info' % source_path, 'traitsui-7.2.1.dist-info'),
('%s\pyface' % source_path, 'pyface'),
('%s\pyface-7.3.0.dist-info' % source_path, 'pyface-7.3.0.dist-info'),
]
I'm running out of ideas, also I tried the folowing solutions but could not get it to run (however the problem stated is not the same as mine, but could be related as I think I get the keyerror as smth. is missing):