Fix: Version und Drittanbieter-Lizenzen im PyInstaller-Build anzeigen (v1.2.6)
pyproject.toml und THIRD_PARTY_LICENSES.txt werden nun ins PyInstaller-Bundle eingebunden. Pfadauflösung nutzt sys._MEIPASS im Bundle-Kontext. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+43
-40
@@ -4,46 +4,49 @@ PyInstaller Konfiguration für DocuMentor
|
||||
Erstellt eine eigenständige Windows-Executable ohne Python-Installation
|
||||
"""
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from PyInstaller.utils.hooks import collect_all
|
||||
|
||||
block_cipher = None
|
||||
|
||||
# Projektpfad
|
||||
project_root = Path(SPECPATH)
|
||||
src_path = project_root / 'src'
|
||||
|
||||
# connectorx komplett sammeln (Python-Code, native .pyd und Metadaten)
|
||||
# PyInstaller erkennt connectorx nicht automatisch, da es zur Laufzeit
|
||||
# von polars per importlib.import_module() geladen wird
|
||||
cx_datas, cx_binaries, cx_hiddenimports = collect_all('connectorx')
|
||||
|
||||
# Alle UI-Dateien sammeln
|
||||
ui_files = []
|
||||
for ui_file in (src_path / 'ui').glob('*.ui'):
|
||||
ui_files.append((str(ui_file), 'ui'))
|
||||
|
||||
# Ressource-Dateien (SQL, CSV) einbinden
|
||||
res_files = []
|
||||
for res_file in (src_path / 'res').glob('*'):
|
||||
res_files.append((str(res_file), 'res'))
|
||||
|
||||
a = Analysis(
|
||||
[str(src_path / 'main.py')],
|
||||
pathex=[str(src_path)],
|
||||
binaries=cx_binaries,
|
||||
datas=ui_files + res_files + cx_datas,
|
||||
hiddenimports=[
|
||||
'PySide6.QtCore',
|
||||
'PySide6.QtGui',
|
||||
'PySide6.QtWidgets',
|
||||
'pydantic',
|
||||
'pydantic_settings',
|
||||
'pydantic_yaml',
|
||||
'polars',
|
||||
'pyarrow',
|
||||
] + cx_hiddenimports,
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from PyInstaller.utils.hooks import collect_all
|
||||
|
||||
block_cipher = None
|
||||
|
||||
# Projektpfad
|
||||
project_root = Path(SPECPATH)
|
||||
src_path = project_root / 'src'
|
||||
|
||||
# connectorx komplett sammeln (Python-Code, native .pyd und Metadaten)
|
||||
# PyInstaller erkennt connectorx nicht automatisch, da es zur Laufzeit
|
||||
# von polars per importlib.import_module() geladen wird
|
||||
cx_datas, cx_binaries, cx_hiddenimports = collect_all('connectorx')
|
||||
|
||||
# Alle UI-Dateien sammeln
|
||||
ui_files = []
|
||||
for ui_file in (src_path / 'ui').glob('*.ui'):
|
||||
ui_files.append((str(ui_file), 'ui'))
|
||||
|
||||
# Ressource-Dateien (SQL, CSV) einbinden
|
||||
res_files = []
|
||||
for res_file in (src_path / 'res').glob('*'):
|
||||
res_files.append((str(res_file), 'res'))
|
||||
|
||||
a = Analysis(
|
||||
[str(src_path / 'main.py')],
|
||||
pathex=[str(src_path)],
|
||||
binaries=cx_binaries,
|
||||
datas=ui_files + res_files + cx_datas + [
|
||||
(str(project_root / 'pyproject.toml'), '.'),
|
||||
(str(project_root / 'THIRD_PARTY_LICENSES.txt'), '.'),
|
||||
],
|
||||
hiddenimports=[
|
||||
'PySide6.QtCore',
|
||||
'PySide6.QtGui',
|
||||
'PySide6.QtWidgets',
|
||||
'pydantic',
|
||||
'pydantic_settings',
|
||||
'pydantic_yaml',
|
||||
'polars',
|
||||
'pyarrow',
|
||||
] + cx_hiddenimports,
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
|
||||
Reference in New Issue
Block a user