Die erste Version des Tools , 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 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: (entpackt die Datei in ein temporÀres Verzeichnis und importiert Module daraus), (Windows-spezifisch und erfordert die Verteilung mehrerer Dateien), (MacOS-spezifisch), (benötigt eine separate Verpackung der AbhÀngigkeiten), und (erstellt ein Paket im zip-Format und erfordert, dass Python im System installiert ist), (kompiliert den Code und bindet nicht den Interpreter ein), (Windows-spezifisch), (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 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
