Files
QPyPack/docs/readme/README_DE.md
T
QwejayHuang 448dbdbbf3 v2.8.0: Add project directory support, improve dependency resolution, and fix syntax injection
- Added direct project directory drag-and-drop support with automatic root workspace and requirements.txt detection
- Added smart entry script prioritization and interactive selection dialog for multi-script projects
- Expanded AST dependency analysis across the entire project workspace to capture sub-package imports
- Implemented local module and resource whitelisting to prevent unintended pip installations of local packages
- Expanded PyPI mappings and Auto-Hooks rules for C extensions and dynamic libraries (PyCryptodome, NaCl, pynput, etc.)
- Added automatic search path injection (`--paths` for PyInstaller and `PYTHONPATH` for Nuitka) for sub-directory entries
- Improved `requirements.txt` parser to safely handle inline comments and environment markers
- Added cross-hierarchy import detection and workspace configuration tips for standalone scripts
- Fixed SyntaxError caused by console pause code injection preceding `from __future__` statements
- Fixed TypeError crash caused by `os.walk` iteration variable shadowing the global translation function
Update QUICKSTART.md、README.MD...
2026-08-31 19:57:05 +08:00

10 KiB
Raw Blame History

QPyPack

简体中文 | English | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Русский | Português

PyPI version Python versions PyPI Downloads Platform Support
Release Date Last Commit License GitHub stars


Modernes, einsatzbereites plattformübergreifendes GUI-Tool zur Paketierung von Python-Anwendungen
Angetrieben von PyInstaller und Nuitka, mit visueller Konfiguration, statischer Abhängigkeitsanalyse und automatisiertem Build-Workflow.

📌 Projektübersicht (Overview)

QPyPack ist ein plattformübergreifendes grafisches Paketierungstool für Python-Entwickler. Durch die nahtlose Integration der beiden Haupt-Engines PyInstaller (Bytecode-Bündelung) und Nuitka (native C/C++-Kompilierung) werden komplexe Compiler-Toolchains, implizite Abhängigkeitsanalysen, Sandbox-Isolation und Ressourcenextraktion in einer intuitiven Benutzeroberfläche abstrahiert.

Egal ob Sie einfache Automatisierungsskripte oder komplexe Desktop- und Serveranwendungen (mit PySide6/PyQt, Playwright, CustomTkinter, FastAPI etc.) verteilen möchten: QPyPack bietet einen stabilen, hochgradig reproduzierbaren Build-Prozess unter Windows, macOS und Linux.


📸 Screenshots

Hauptfenster (Englisch) Hauptfenster (Chinesisch) Engine & Umgebung
Abhängigkeitsverwaltung Optimierung & Signierung Über & Diagnose


🛠️ Hauptfunktionen & Architektur

1. Dual-Engine-Kompilierung & Binäroptimierung

  • Nahtloser Wechsel zwischen zwei Engines:
    • PyInstaller: Schnelle Build-Zeiten, keine C-Compiler-Abhängigkeit, hervorragende Kompatibilität.
    • Nuitka: Übersetzt Python-Code direkt in native C/C++-Binärdateien für hohe Ausführungsgeschwindigkeit, starken Schutz gegen Reverse-Engineering und kompakte Ausgabegröße.
  • LTO-Linkzeitoptimierung & Modulbereinigung: Unterstützt --lto=yes im Lite-Modus; ungenutzte schwere Qt-Submodule (z. B. WebEngine, 3D, Quick) werden automatisch erkannt und entfernt, um Dateigrößen-Overhead zu vermeiden.
  • Flexible Ausgabeformate: Unterstützt Einzeldatei- (--onefile) und Verzeichnis-Modus (--onedir) sowie benutzerdefinierte interne Ressourcenpfade (--contents-directory).

2. Statische Codeanalyse & Topologieschutz

  • Natives rekursives AST-Scanning: Analysiert abstrakte Syntaxbäume (AST) direkt in Python, um explizite und implizite Importe (Hidden Imports) ohne Programmausführung zu erfassen.
  • Intelligentes Paket-Mapping: Enthält Zuordnungstabellen für gängige Import- und PyPI-Paketnamen (z. B. cv2 \to opencv-python, PIL \to pillow, win32com \to pywin32), modular erweiterbar.
  • Automatische Backport-Isolation: Erkennt und blockiert veraltete Backport-Bibliotheken, die mit modernen Standardbibliotheken kollidieren (z. B. pathlib oder typing unter Python 3.10+).

3. Automatisiertes Umgebungsmanagement & Selbstheilung

  • Automatische C/C++-Compiler-Verwaltung: Erkennt lokale MSVC-, Clang- (LLVM) und GCC-Installationen. Falls kein nativer Compiler vorhanden ist, lädt Nuitka automatisch eine MinGW-w64-Toolchain herunter.
  • Lebenszyklus virtueller Umgebungen: Unterstützt isolierte Sandkästen sowie wiederverwendbare geteilte virtuelle Umgebungen mit Bereinigungsfunktion.
  • Ressourcenüberwachung & Fehlerselbstheilung:
    • Bewertet vor dem Build RAM und Festplattenspeicher und passt die Thread-Parallelität (Adaptive Concurrency) an.
    • Fängt Speicherengpässe (ZstdError / OOM) ab und wiederholt den Build im Single-Thread-Modus.
    • Umgeht Dateisperren durch Antivirenprogramme oder Cloud-Synchronisationsdienste.

4. Codesignatur & Projekt-Voreinstellungen

  • Intelligente digitale Signatur: Signiert Windows-Binärdateien automatisch via Authenticode (unterstützt Signtool und PowerShell mit RFC 3161 Zeitstempeln) sowie macOS codesign.
  • Zertifikat-Suite: Integrierter Generator für selbstsignierte .pfx-Zertifikate und Unterstützung für kommerzielle Zertifikate.
  • Projekt-Presets (Import/Export): Speichert alle Build-Parameter, Ressourcenlisten und Mappings in portable .qpypack-Dateien.

5. Benutzererlebnis & Lokalisierung

  • Intuitive Drag & Drop-Bedienung: Automatisches Auslesen von Modul-Metadaten (__version__, __author__, App-Titel) und Zuweisung von Programmsymbolen.
  • Google Material Vektor-UI: Skaliert verlustfrei auf High-DPI/4K-Monitoren. Enthält Übersetzungen für 17 Sprachen (Deutsch, Englisch, Chinesisch, Japanisch, Koreanisch, Französisch, Spanisch etc.).

📊 Engine-Vergleich (PyInstaller vs. Nuitka)

Kriterium PyInstaller Nuitka
Funktionsweise Bündelt Python-Interpreter + Bytecode (.pyc) Kompiliert Python-Code zu nativen C/C++-Binärdateien
Build-Geschwindigkeit Sehr schnell (typisch 10 – 60 s) Moderat bis langsam (erfordert C++-Kompilierung)
Compiler-Bedarf Keiner Erforderlich (MSVC / GCC / Clang / MinGW-w64)
Code-Schutz Basis (über Dekompilierer einsehbar) Extrem hoch (Maschinencode, hoher Reverse-Engineering-Schutz)
Ausführungsleistung Standard Python-Geschwindigkeit Sehr schneller Start, optimierte Schleifen/Berechnungen
Empfohlen für Schnelles Prototyping, interne Tools, dynamische Skripte Kommerzielle Distribution, Schutz geistigen Eigentums, kompakte Größe

⚡ Schnellstart (Quick Start)

💡 Erste Schritte? Konsultieren Sie unsere 📖 Kurzanleitung (QUICKSTART.md) für Schritt-für-Schritt-Anweisungen und empfohlene Konfigurationen.

Methode 1: Installation über pip / pipx (Empfohlen)

Voraussetzung: Python >= 3.8

# Installation via pip
pip install qpypack

# Anwendung starten
qpypack

Mit modernen Paketmanagern:

# Isoliert über pipx
pipx run qpypack

# Ultraschnell über uv
uvx qpypack

Methode 2: Vorkompilierte Binärdateien

Ohne lokale Python-Installation können Sie direkt kompilierte Binärdateien für Windows, macOS oder Linux herunterladen:

👉 Vorkompilierte Versionen herunterladen (GitHub Releases)


📋 Pfadauflösung für Ressourcen (sys._MEIPASS)

Im Einzeldatei-Modus (--onefile) werden statische Dateien (Bilder, Konfigurationen, Modelle) zur Laufzeit temporär entpackt. Verwenden Sie folgendes Standardmuster zur Pfadauflösung:

import sys
import os
from pathlib import Path

def get_asset_path(relative_path: str) -> Path:
    """Ermittelt den absoluten Pfad zu gepackten Ressourcen."""
    if hasattr(sys, "_MEIPASS"):
        # PyInstaller temporäres Extraktionsverzeichnis
        base_path = Path(sys._MEIPASS)
    elif "__compiled__" in globals():
        # Nuitka natives Binärverzeichnis
        base_path = Path(sys.argv[0]).resolve().parent
    else:
        # Lokale Entwicklungsumgebung
        base_path = Path(__file__).resolve().parent
    return base_path / relative_path

📅 Änderungsprotokoll (Changelog)

Ausführliche Versionshinweise und behobene Fehler finden Sie in CHANGELOG.md.


💖 Mitwirken & Sponsoring

QPyPack ist ein Open-Source-Projekt. Wenn Ihnen das Tool bei Ihrer Arbeit geholfen hat, freuen wir uns über Ihre Unterstützung:

  • 🌟 Star vergeben: Schenken Sie uns einen Stern auf GitHub.
  • 🐛 Feedback & Fehlerberichte: Erstellen Sie ein Issue auf GitHub.
  • ⚡ Sponsoring: Unterstützen Sie das Projekt auf Afdian (爱发电) (WeChat / Alipay).

📄 Lizenz (License)

Lizenziert unter der GNU General Public License v3.0 (GPL-3.0).

Important

Urheberrecht an kompilierten Binärdateien: Die Rechte an Ihren mit QPyPack erstellten Anwendungen verbleiben vollständig bei Ihnen. Die GPL-3.0-Lizenz von QPyPack überträgt sich nicht auf Ihre kompilierten Programme.

Copyright (C) 2026 QwejayHuang.