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:
@@ -6,14 +6,19 @@ mit den tatsächlich installierten Paketversionen via importlib.metadata.
|
||||
"""
|
||||
import logging
|
||||
import re
|
||||
import sys
|
||||
from dataclasses import dataclass, field
|
||||
from importlib.metadata import PackageNotFoundError, version
|
||||
from pathlib import Path
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Pfad zur Lizenzdatei relativ zum Projektroot
|
||||
LICENSE_FILE = Path(__file__).parent.parent / "THIRD_PARTY_LICENSES.txt"
|
||||
# Pfad zur Lizenzdatei: im PyInstaller-Bundle aus sys._MEIPASS,
|
||||
# im Entwicklungsmodus relativ zum Projektroot
|
||||
if hasattr(sys, "_MEIPASS"):
|
||||
LICENSE_FILE = Path(sys._MEIPASS) / "THIRD_PARTY_LICENSES.txt" # type: ignore[attr-defined]
|
||||
else:
|
||||
LICENSE_FILE = Path(__file__).parent.parent / "THIRD_PARTY_LICENSES.txt"
|
||||
|
||||
# Mapping von Anzeigenamen zu PyPI-Paketnamen für Sonderfälle
|
||||
_PACKAGE_NAME_MAP: dict[str, str] = {
|
||||
|
||||
@@ -45,11 +45,14 @@ class AboutDialog(QDialog):
|
||||
try:
|
||||
return version("DocuMentor")
|
||||
except PackageNotFoundError:
|
||||
# Fallback: pyproject.toml parsen (Entwicklungsmodus ohne Installation)
|
||||
# Fallback: pyproject.toml parsen (PyInstaller-Bundle oder Entwicklungsmodus)
|
||||
try:
|
||||
import tomllib
|
||||
|
||||
pyproject = Path(__file__).parent.parent.parent / "pyproject.toml"
|
||||
if hasattr(sys, "_MEIPASS"):
|
||||
pyproject = Path(sys._MEIPASS) / "pyproject.toml" # type: ignore[attr-defined]
|
||||
else:
|
||||
pyproject = Path(__file__).parent.parent.parent / "pyproject.toml"
|
||||
with open(pyproject, "rb") as f:
|
||||
return tomllib.load(f)["project"]["version"]
|
||||
except Exception:
|
||||
|
||||
Reference in New Issue
Block a user