Veröffentlichung von PyOxidizer zur Verpackung von Python-Projekten in eigenständige ausführbare Dateien

Präsentiert Die erste Version des Tools PyOxidizer, das es ermöglicht, ein Projekt in der Programmiersprache Python in eine selbständige ausführbare Datei zu verpacken, die den Python-Interpreter sowie alle erforderlichen Bibliotheken und Ressourcen enthält. Solche Dateien können in Umgebungen ohne installierte Python-Tools oder unabhängig von der Verfügbarkeit der erforderlichen Python-Version ausgeführt werden. PyOxidizer kann auch statisch verlinkte ausführbare Dateien erstellen, die nicht an Systembibliotheken gebunden sind. Der Code des Projekts ist in Rust geschrieben und wird unter der GPLv3-Lizenz bereitgestellt. unter der Lizenz MPL (Mozilla Public License) 2.0.

Das Projekt basiert auf dem gleichnamigen Modul für die Programmiersprache Rust, das es ermöglicht, den Python-Interpreter in Rust-Anwendungen zu integrieren, um Python-Skripte auszuführen. PyOxidizer hat sich nun über ein Rust-Plugin hinaus entwickelt und wird als ein Tool positioniert, das für ein breiteres Publikum zugänglich ist, um selbständige Python-Pakete zu erstellen und zu verteilen. Für diejenigen, die Anwendungen nicht als ausführbare Dateien vertreiben möchten, bietet PyOxidizer die Möglichkeit, Bibliotheken zu generieren, die sich mit beliebigen Anwendungen verknüpfen lassen, um den Python-Interpreter und die erforderlichen Erweiterungen einzubetten.

Für Endbenutzer vereinfacht die Bereitstellung des Projekts in Form einer einzigen ausführbaren Datei die Installation erheblich und beseitigt den Aufwand, Abhängigkeiten zu suchen. Dies ist besonders relevant für komplexe Python-Projekte wie Videobearbeitungssoftware. Für Anwendungsentwickler ermöglicht PyOxidizer eine Zeitersparnis bei der Bereitstellung von Anwendungen, ohne verschiedene Werkzeuge zur Erstellung von Paketen für unterschiedliche Betriebssysteme nutzen zu müssen.

Die Verwendung der vorgeschlagenen Builds hat sich ebenfalls positiv auf die Leistung ausgewirkt – die durch PyOxidizer generierten Startdateien starten schneller als bei der Verwendung des systemeigenen Python, da der Import und die Definition grundlegender Module entfallen. In PyOxidizer werden Module aus dem Speicher importiert – alle integrierten Module werden sofort in den Speicher geladen und anschließend ohne Zugriff auf die Festplatte verwendet. In Tests reduziert sich die Startzeit der Anwendung bei Verwendung von PyOxidizer um etwa die Hälfte.

Unter den bereits bestehenden ähnlichen Projekten können folgende hervorgehoben werden: PyInstaller (entpackt die Datei in ein temporäres Verzeichnis und importiert Module daraus), py2exe (Windows-spezifisch und erfordert die Verteilung mehrerer Dateien), py2app (MacOS-spezifisch), cx-freeze (benötigt eine separate Verpackung der Abhängigkeiten), Shiv und PEX (erstellt ein Paket im zip-Format und erfordert, dass Python im System installiert ist), Nuitka (kompiliert den Code und bindet nicht den Interpreter ein), pynsist (Windows-spezifisch), PyRun (proprietäre Entwicklung ohne Erklärung der Funktionsweise).

In der aktuellen Entwicklungsphase bietet PyOxidizer bereits die grundlegende Funktionalität zur Erstellung von ausführbaren Dateien für Windows, macOS und Linux. Noch nicht verfügbare Funktionen sind gehört das Fehlen einer standardmäßigen Build-Umgebung, die Unmöglichkeit zur Erstellung von Paketen in den Formaten MSI, DMG und deb/rpm, Probleme bei der Verpackung von Projekten mit komplexen Erweiterungen in C, das Fehlen von Befehlen zur Unterstützung der Bereitstellung ("pyoxidizer add", "pyoxidizer analyze" und "pyoxidizer upgrade"), die eingeschränkte Unterstützung von Terminfo und Readline, fehlende Unterstützung für Versionen abweichend von Python 3.7, das Fehlen von Ressourcendekompression und die Unfähigkeit zur Kreuzkompilierung.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster