# PyInstaller-Spezifikation – erzeugt eine einzelne Programmdatei (Windows: .exe, Linux: ELF), # unter Windows zusätzlich den Ordner dist/Provisionsmanager/ (schneller Start, Inhalt des Setups) # Aufruf: pyinstaller --noconfirm build/provisionsmanager.spec import os import sys WIN = sys.platform.startswith("win") ROOT = os.path.abspath(os.path.join(SPECPATH, "..")) a = Analysis( [os.path.join(ROOT, "build", "start.py")], pathex=[ROOT], hiddenimports=["openpyxl", "xlrd"], datas=[(os.path.join(ROOT, "provtool", "gui", "bilder"), os.path.join("provtool", "gui", "bilder"))], excludes=["numpy", "pandas", "PIL", "pytest", "matplotlib", "unittest", "pydoc_data"], noarchive=False, ) pyz = PYZ(a.pure) exe = EXE( pyz, a.scripts, a.binaries, a.datas, [], name="Provisionsmanager95", icon=os.path.join(ROOT, "assets", "app.ico") if WIN else None, version=os.path.join(ROOT, "build", "version_info.txt") if WIN else None, console=False, upx=False, debug=False, strip=False, runtime_tmpdir=None, ) if WIN: exe_ordner = EXE( pyz, a.scripts, [], exclude_binaries=True, name="Provisionsmanager", icon=os.path.join(ROOT, "assets", "app.ico"), version=os.path.join(ROOT, "build", "version_info.txt"), console=False, upx=False, debug=False, strip=False, ) COLLECT(exe_ordner, a.binaries, a.datas, name="Provisionsmanager", upx=False, strip=False)