# -*- mode: python ; coding: utf-8 -*- """ PyInstaller Konfiguration für DocuMentor Erstellt eine eigenständige Windows-Executable ohne Python-Installation """ import sys from pathlib import Path block_cipher = None # Projektpfad project_root = Path(SPECPATH) src_path = project_root / 'src' # Alle UI-Dateien sammeln ui_files = [] for ui_file in (src_path / 'ui').glob('*.ui'): ui_files.append((str(ui_file), 'ui')) a = Analysis( [str(src_path / 'main.py')], pathex=[str(src_path)], binaries=[], datas=ui_files, # UI-Dateien einbinden hiddenimports=[ 'PySide6.QtCore', 'PySide6.QtGui', 'PySide6.QtWidgets', 'pydantic', 'pydantic_settings', 'pydantic_yaml', 'polars', 'pyarrow', 'connectorx', ], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False, ) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE( pyz, a.scripts, [], exclude_binaries=True, name='DocuMentor', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, console=False, # Keine Konsole anzeigen (GUI-Anwendung) disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, icon=str(project_root / 'resources' / 'icon.ico') if (project_root / 'resources' / 'icon.ico').exists() else None, version=str(project_root / 'version_info.txt') if (project_root / 'version_info.txt').exists() else None, ) coll = COLLECT( exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, upx_exclude=[], name='DocuMentor', )