Release van PyOxidizer voor het verpakken van Python-projecten in zelfvoorzienende uitvoerbare bestanden

Geïntroduceerd eerste uitgave van het hulpprogramma PyOxidizer, waarmee je een project geschreven in Python kunt verpakken in de vorm van een zelfstandig uitvoerbaar bestand dat de Python-interpreter en alle benodigde bibliotheken en bronnen bevat. Dergelijke bestanden kunnen worden uitgevoerd in omgevingen zonder geïnstalleerde Python-tools of onafhankelijk van de aanwezigheid van de vereiste versie van Python. PyOxidizer kan ook statisch gekoppelde uitvoerbare bestanden genereren die niet aan systeembibliotheken zijn gebonden. De projectcode is geschreven in Rust en wordt verspreid onder MPL (Mozilla Public License) 2.0.

Het project is gebaseerd op dezelfde module voor de programmeertaal Rust die het mogelijk maakt om de Python-interpreter in Rust-programma's in te bedden voor het uitvoeren van Python-scripts. PyOxidizer is nu verder gegaan dan een aanvulling voor Rust en wordt gepositioneerd als een toegankelijker hulpmiddel voor het creëren en distribueren van zelfstandige pakketten met Python. Voor wie geen applicaties in de vorm van een uitvoerbaar bestand wil verspreiden, biedt PyOxidizer mogelijkheden voor het genereren van bibliotheken die kunnen worden gekoppeld aan applicaties voor het inbedden van de Python-interpreter en de benodigde set extensies.

Voor eindgebruikers vereenvoudigt de levering van het project in de vorm van één uitvoerbaar bestand de installatie enorm en elimineert het de noodzaak om afhankelijkheden uit te zoeken, wat bijvoorbeeld van belang is voor complexe Python-projecten zoals videobewerkingssoftware. Voor applicatieontwikkelaars maakt PyOxidizer het mogelijk om tijd te besparen op de verzending van de applicatie, zonder dat verschillende hulpmiddelen voor het maken van pakketten voor verschillende besturingssystemen nodig zijn.

Het gebruik van de aangeboden builds heeft ook een positieve invloed op de prestaties: de in PyOxidizer gegenereerde bestanden worden sneller uitgevoerd dan bij het gebruik van de systeem-Python vanwege het uitsluiten van het importeren en definiëren van basismodules. In PyOxidizer worden modules vanuit het geheugen geïmporteerd — alle ingebedde modules worden onmiddellijk in het geheugen geladen en vervolgens gebruikt zonder toegang tot de schijf). In tests wordt de opstarttijd van de applicatie bij gebruik van PyOxidizer ongeveer gehalveerd.

Van de al bestaande vergelijkbare projecten kunnen we het volgende noemen: PyInstaller (pakt het bestand uit naar een tijdelijke map en importeert de modules daaruit), py2exe (gekoppeld aan het Windows-platform en vereist de distributie van meerdere bestanden), py2app (gekoppeld aan macOS), cx-freeze (vereist aparte verpakkingen van afhankelijkheden), Shiv en PEX (vormen een pakket in zip-formaat en vereisen Python op het systeem), Nuitka (compileert de code in plaats van de interpreter in te bedden), pynsist (gekoppeld aan Windows), PyRun (eigen ontwikkeling zonder uitleg over de werking).

In de huidige ontwikkelingsfase heeft PyOxidizer al de basisfunctionaliteit voor het genereren van uitvoerbare bestanden voor Windows, macOS en Linux gerealiseerd. Van de momenteel niet beschikbare mogelijkheden wordt opgemerkt het ontbreken van een standaard build-omgeving, de onmogelijkheid om pakketten in MSI-, DMG- en deb/rpm-formaten te genereren, problemen met het verpakken van projecten die complexe C-uitbreidingen omvatten, het ontbreken van commando's voor het ondersteunen van de distributie (‘pyoxidizer add’, ‘pyoxidizer analyze’ en ‘pyoxidizer upgrade’), beperkte ondersteuning voor Terminfo en Readline, het ontbreken van ondersteuning voor versies anders dan Python 3.7, het ontbreken van ondersteuning voor het comprimeren van middelen, en de onmogelijkheid van cross-compilatie.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster