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

Vorstellung erste Veröffentlichung des Dienstprogramms PyOxidizer, das es ermöglicht, ein Projekt in der Programmiersprache Python in Form einer eigenständigen ausführbaren Datei zu paketieren, die den Python-Interpreter und 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 systemeigene Bibliotheken gebunden sind. Der Code des Projekts ist in der Programmiersprache Rust geschrieben und wird verbreitet unter der MPL (Mozilla Public License) 2.0-Lizenz.

Das Projekt basiert auf dem gleichnamigen Modul für die Programmiersprache Rust, das es ermöglicht, den Python-Interpreter in Rust-Programme einzubetten, um darin Python-Skripte auszuführen. PyOxidizer hat nun die Grenzen eines Ergänzungsmoduls für Rust überschritten und wird als tool für eine breitere Zielgruppe angeboten, um eigenständige Pakete mit Python zu erstellen und zu verteilen. Für diejenigen, die Anwendungen nicht in Form von ausführbaren Dateien verteilen müssen, bietet PyOxidizer Möglichkeiten zur Erstellung von Bibliotheken, die zum Binden mit beliebigen Anwendungen geeignet sind, um den Python-Interpreter und die erforderliche Sammlung von Erweiterungen einzubetten.

Für Endbenutzer vereinfacht die Bereitstellung des Projekts in Form einer einzelnen ausführbaren Datei die Installation erheblich und befreit von der Notwendigkeit, Abhängigkeiten zu identifizieren, was insbesondere für komplexe Python-Projekte wie Videobearbeitungsprogramme relevant ist. Für Anwendungsentwickler ermöglicht PyOxidizer eine Zeitersparnis bei der Bereitstellung der Anwendung, ohne dass verschiedene Tools zur Paketierung für verschiedene Betriebssysteme verwendet werden müssen.

Die Verwendung der vorgeschlagenen Builds hat auch positive Auswirkungen auf die Leistung – die in PyOxidizer generierten Dateien starten schneller als die Verwendung von systemeigenem Python, da der Import und die Definition grundlegender Module ausgeschlossen sind. In PyOxidizer werden Module aus dem Speicher importiert – alle eingebetteten Module werden sofort in den Speicher geladen und dann ohne Zugriff auf die Festplatte verwendet). In Tests wurde die Startzeit der Anwendung bei Verwendung von PyOxidizer um etwa die Hälfte verkürzt.

Unter den bereits bestehenden ähnlichen Projekten sind zu erwähnen: PyInstaller (entpackt die Datei in ein temporäres Verzeichnis und importiert die Module daraus), py2exe (an die Windows-Plattform gebunden und erfordert die Verbreitung mehrerer Dateien), py2app (an macOS gebunden), cx-freeze (erfordert separate Verpackung von Abhängigkeiten), Shiv und PEX (erstellt ein Paket im ZIP-Format und benötigt Python im System), Nuitka (kompiliert den Code, anstatt den Interpreter einzubetten), pynsist (an Windows gebunden), PyRun (proprietäre Entwicklung ohne Erklärungen zu den Funktionsprinzipien).

In der aktuellen Entwicklungsstufe von PyOxidizer ist die grundlegende Funktionalität zur Erstellung von ausführbaren Dateien für Windows, macOS und Linux bereits implementiert. Unter den derzeit nicht verfügbaren Möglichkeiten wird vermerkt fehlen eine Standard-Bauumgebung, die Möglichkeit zur Erstellung von Paketen in den Formaten MSI, DMG und deb/rpm, Probleme bei der Verpackung von Projekten mit komplexen Erweiterungen in C, es fehlen Befehle zur Unterstützung der Bereitstellung (wie „pyoxidizer add“, „pyoxidizer analyze“ und „pyoxidizer upgrade“), eingeschränkte Unterstützung für Terminfo und Readline, keine Unterstützung für Versionen außer Python 3.7, fehlende Unterstützung für die Kompression von Ressourcen und keine Möglichkeit zur Cross-Kompilierung.

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster