Programmering

PyOxidizer bruker Rust for å lage Python-kjørbare filer

Et nytt prosjekt, skrevet i Rust, har som mål å gjøre det lettere å pakke og distribuere et Python-program som en frittstående binær kjørbar-noe som lenge har vært et smertepunkt for Python-utviklere.

PyOxidizer, ifølge GitHub README, er "en samling rustkasser som letter bygningsbiblioteker og binærfiler som inneholder Python-tolker." Med PyOxidizer, hevder utviklerne, er det mulig å bygge en kjørbar fil for en Python-app som bygger inn en Python-tolk, uten andre avhengigheter for kjøretid.

PyOxidizer krever installasjon av Rust 1.31 eller bedre, og pakker bare apper skrevet med Python 3.7. For å bruke PyOxidizer oppretter utvikleren en TOML-fil som beskriver hvordan du legger inn en gitt Python-app, og deretter bygger og kjører PyOxidizer med en miljøvariabel som peker mot den TOML-filen.

PyOxidizer skiller seg fra andre emballasjeløsninger ved å bruke en spesialtilpasset Python-tolk som er designet for å være statisk koblet og innebygd i et annet program. Andre løsninger, som PyInstaller, distribuerer eksisterende lager CPython. DLL - praktisk og kompatibel, men ikke veldig fleksibel. PyOxidizer pakker også bytekoden for Python-appen i det kjørbare bildet og laster det direkte fra minnet (raskt), i stedet for fra filsystemet (tregere).

Som PyInstaller utfører imidlertid ikke PyOxidizer noen optimaliseringer på Python-koden. Et annet prosjekt, Nuitka, samler ikke bare Python-apper til frittstående kjørbare filer, men prøver også å bruke ytelsesoptimaliseringer til den kompilerte koden. Imidlertid er Nuitka fortsatt ansett som et prosjekt på betanivå, og mange av de forventede ytelsesforbedringene er ikke tilgjengelige ennå.

PyOxidizer i seg selv er fortsatt et veldig tidlig prosjekt. Det kan bare generere Linux-binærfiler fordi et av oppstrøms-prosjektene det er avhengig av, den innebygde versjonen av CPython, er for øyeblikket bare tilgjengelig i Linux-bygninger.

$config[zx-auto] not found$config[zx-overlay] not found