Implementiert ein professionelles Build-System für Windows-Benutzer ohne Python-Installation: PyInstaller-Integration: - DocuMentor.spec mit automatischer Icon/Version-Einbindung - Unterstützung für alle PySide6-UI-Dateien und Dependencies - UPX-Kompression für kleinere Executable-Größe Icon-System: - create_icon.py generiert Standard-Icon oder konvertiert PNG zu ICO - Multi-Size ICO (16x16 bis 256x256) für alle Windows-Kontexte - Automatische Integration in Build-Prozess - Prompts für Bild-KIs (Gemini, DALL-E, etc.) Versionsinformationen: - create_version_info.py liest Version aus pyproject.toml - Windows-Datei-Eigenschaften (Rechtsklick → Details) - Automatische Generierung bei jedem Build Build-Automatisierung: - build_windows.py orchestriert gesamten Build-Prozess - Erstellt Icon und Versionsinformationen automatisch - Generiert ZIP-Archiv für Distribution - Cleanup alter Builds Inno Setup-Integration: - installer.iss für professionelle Setup.exe - GUID-Generator (generate_guid.py) - Desktop-Verknüpfungen und Start-Menü-Integration Dokumentation: - BUILD.md - Schnellstart-Anleitung - docs/windows_distribution.md - Detaillierte Distribution-Dokumentation - docs/icon_and_version_info.md - Icon- und Versions-System - resources/icon_prompt.md - KI-Prompts für Icon-Generierung Dependencies: - pyinstaller>=6.0.0 für Executable-Erstellung - pillow>=10.0.0 für Icon-Generierung Externe Abhängigkeiten (Java, FOP, Saxon, diff-pdf) bleiben separat installierbar. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6.1 KiB
Windows Distribution Guide für DocuMentor
Überblick
Dieses Dokument beschreibt, wie DocuMentor für Windows-Benutzer ohne Python-Installation verpackt wird.
Voraussetzungen
Auf dem Entwicklungssystem
# Dependencies installieren (inkl. PyInstaller)
uv sync --all-groups
Für Setup.exe (optional)
- Inno Setup: Download von https://jrsoftware.org/isdl.php
- Oder WiX Toolset für MSI: https://wixtoolset.org/
Build-Prozess
Option 1: Einfacher Build (ZIP-Distribution)
# 1. PyInstaller installieren
uv sync --all-groups
# 2. Build ausführen
uv run python build_windows.py
Dies erstellt:
dist/DocuMentor/DocuMentor.exe- Eigenständige Executabledist/DocuMentor-YYYYMMDD-Windows.zip- Portable ZIP-Archiv
Option 2: Professionelle Setup.exe mit Inno Setup
# 1. PyInstaller Build
uv run python build_windows.py
# 2. Inno Setup Compiler ausführen
iscc installer.iss
Dies erstellt:
dist/installer/DocuMentor-Setup-0.1.0.exe- Professioneller Installer
Option 3: MSI-Installer mit WiX
# TODO: WiX-Konfiguration noch zu erstellen
Manuelle Schritte
1. PyInstaller direkt verwenden
# Cleanup
rm -rf build/ dist/
# Build
uv run pyinstaller --clean DocuMentor.spec
# Testen
dist/DocuMentor/DocuMentor.exe
2. Anpassungen vornehmen
Icon hinzufügen:
- Icon-Datei (
.ico) im Projekt speichern, z.B.resources/icon.ico - In
DocuMentor.specanpassen:icon='resources/icon.ico'
Versionsinformationen:
In DocuMentor.spec erweitern:
exe = EXE(
# ...
version='version_info.txt', # Windows-Versionsinformationen
)
PyInstaller .spec Konfiguration
Die Datei DocuMentor.spec enthält:
- datas: UI-Dateien (.ui) werden mitgepackt
- hiddenimports: Alle notwendigen PySide6/Polars-Module
- console=False: GUI-Anwendung ohne Konsole
- upx=True: Kompression der Binaries
Wichtige Einstellungen
# Ein-Datei-Build (alles in einer .exe)
exe = EXE(
pyz,
a.scripts,
a.binaries, # Diese Zeilen
a.zipfiles, # auskommentieren
a.datas, # für One-File
# ...
onefile=True, # Hinzufügen
)
Achtung: One-File-Build ist langsamer beim Start, da alles temporär entpackt werden muss.
Distribution
ZIP-Archive
# Automatisch durch build_windows.py erstellt
dist/DocuMentor-YYYYMMDD-Windows.zip
Vorteile:
- Einfach, portable
- Keine Installation nötig
- Kann auf USB-Stick verwendet werden
Nachteile:
- Keine Deinstallationsroutine
- Keine Verknüpfungen
- Keine Registry-Einträge
Setup.exe mit Inno Setup
Vorteile:
- Professionell
- Deinstallation integriert
- Start-Menü und Desktop-Icons
- Update-Mechanismus möglich
Nachteile:
- Benötigt Administrator-Rechte (optional)
- Komplexere Konfiguration
MSI-Installer
Vorteile:
- Windows-Standard
- Gruppen-Richtlinien-fähig
- Silent Installation möglich
Nachteile:
- Komplexe Erstellung
- Benötigt WiX Toolset
Externe Abhängigkeiten
DocuMentor benötigt diese Tools (NICHT im Installer enthalten):
-
Java Runtime Environment (JRE) 11+
- Für Saxon und Apache FOP
- Download: https://adoptium.net/
-
Apache FOP
- XSL-FO zu PDF Konvertierung
- Download: https://xmlgraphics.apache.org/fop/
-
Saxon XSLT Prozessor
- XSLT 2.0/3.0 Transformationen
- Download: https://www.saxonica.com/
-
diff-pdf
- PDF-Vergleich
- Download: https://vslavik.github.io/diff-pdf/
Benutzer-Anleitung
Nach der Installation:
- DocuMentor starten
- Beim ersten Start öffnet sich automatisch die Einstellungen
- Pfade zu Java, Saxon, FOP und diff-pdf konfigurieren
- Projekt-Verzeichnis wählen oder neues Projekt erstellen
Testing
Lokales Testing (Linux/WSL)
# Build für Windows erstellen
uv run python build_windows.py
# Executable mit Wine testen (falls verfügbar)
wine dist/DocuMentor/DocuMentor.exe
Testing auf Windows
- ZIP auf Windows-System kopieren
- Entpacken
DocuMentor.exeausführen- Alle Features testen:
- Projekt öffnen/erstellen
- Tree-Navigation
- PDF-Generierung
- Einstellungen
Troubleshooting
Problem: "Module not found" Fehler
Lösung: Hidden imports in DocuMentor.spec ergänzen:
hiddenimports=[
# ... existing
'missing_module',
]
Problem: UI-Dateien nicht gefunden
Lösung: Prüfen ob datas korrekt konfiguriert:
datas=[
('src/ui/*.ui', 'ui'),
]
Problem: Executable zu groß
Lösungen:
- UPX-Kompression aktivieren (bereits aktiv)
- Excludes hinzufügen für ungenutzte Module:
excludes=['tkinter', 'matplotlib', 'test', 'unittest'] - One-File-Build verwenden (langsamer Start)
Problem: Antivirus blockiert
Lösung:
- Code-Signing-Zertifikat verwenden
- Bei Microsoft einreichen für SmartScreen
- README mit Hinweis erweitern
Automatisierung mit CI/CD
GitHub Actions Beispiel
name: Build Windows Release
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install uv
uses: astral-sh/setup-uv@v1
- name: Build
run: uv run python build_windows.py
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: dist/*.zip
Versionierung
Version in folgenden Dateien aktualisieren:
pyproject.toml-version = "X.Y.Z"installer.iss-#define MyAppVersion "X.Y.Z"- Optional:
src/version.pyerstellen
Lizenz und Rechtliches
- Alle Python-Dependencies sind in der Distribution enthalten
- PySide6 (LGPL): Dynamische Verlinkung ist OK
- Polars (MIT): Unproblematisch
- Pydantic (MIT): Unproblematisch
Externe Tools (Saxon, FOP) haben eigene Lizenzen und müssen separat installiert werden.