erste Veröffentlichung des Dienstprogramms , 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 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: (entpackt die Datei in ein temporÀres Verzeichnis und importiert die Module daraus), (an die Windows-Plattform gebunden und erfordert die Verbreitung mehrerer Dateien), (an macOS gebunden), (erfordert separate Verpackung von AbhÀngigkeiten), und (erstellt ein Paket im ZIP-Format und benötigt Python im System), (kompiliert den Code, anstatt den Interpreter einzubetten), (an Windows gebunden), (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 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
