Release av PyOxidizer för att paketera Python-projekt till fristående körbara filer

Introducerad första utgåvan av verktyget PyOxidizer, som låter dig paketera ett projekt i Python i form av en fristående körbar fil, inklusive Python-tolken och alla bibliotek och resurser som behövs för arbetet. Sådana filer kan köras i miljöer utan Python-verktyg installerat eller oavsett vilken version av Python som krävs. PyOxidizer kan också generera statiskt länkade körbara filer som inte är länkade till systembibliotek. Projektkoden är skriven i Rust och levererad av licensierad under MPL (Mozilla Public License) 2.0.

Projektet är baserat på Rust-språkmodulen med samma namn, som låter dig bädda in en Python-tolk i Rust-program för att köra Python-skript i dem. PyOxidizer har nu gått längre än att vara ett Rust-tillägg och positioneras som ett verktyg för att bygga och distribuera självständiga Python-paket till en bredare publik. För de som inte behöver distribuera applikationer som en körbar fil, ger PyOxidizer möjligheten att generera bibliotek som är lämpliga för länkning med vilken applikation som helst för att bädda in en Python-tolkare och den nödvändiga uppsättningen av tillägg.

För slutanvändare, att leverera projektet som en enda körbar fil förenklar installationen avsevärt och eliminerar arbetet med att välja beroenden, vilket är viktigt till exempel för komplexa Python-projekt som videoredigerare. För applikationsutvecklare låter PyOxidizer dig spara tid på att organisera applikationsleverans, utan att behöva använda olika verktyg för att skapa paket för olika operativsystem.

Användningen av de föreslagna sammansättningarna har också en positiv effekt på prestanda - filer som genereras i PyOxidizer körs snabbare än när man använder systemet Python på grund av eliminering av import och definition av basmoduler. I PyOxidizer importeras moduler från minnet - alla inbyggda moduler laddas omedelbart in i minnet och används sedan utan att komma åt disken). I tester reduceras applikationsstarttiden när du använder PyOxidizer med ungefär hälften.

Bland de redan existerande liknande projekten kan följande noteras: PyInstaller (packar upp filen i en tillfällig katalog och importerar moduler från den), py2exe (kopplad till Windows-plattformen och kräver att flera filer distribueras), py2app (kopplat till macOS), cx-frysa (kräver separat beroendeförpackning), Shiv и PEX (bilda ett paket i zip-format och kräver Python på systemet), Nuitka (kompilerar koden istället för att bädda in en tolk), pynsist (bunden till Windows) PyRun (egen utveckling utan förklaring av operativa principer).

I det nuvarande utvecklingsstadiet har PyOxidizer redan implementerat huvudfunktionaliteten för att generera körbara filer för Windows, macOS och Linux. Från för närvarande otillgängliga möjligheter firas avsaknad av en standardbyggd miljö, oförmåga att generera paket i MSI-, DMG- och deb/rpm-format, problem med paketeringsprojekt som inkluderar komplexa tillägg i C-språket, brist på kommandon för att stödja leverans ("pyoxidizer add", "pyoxidizer analys" och “pyoxidizer-uppgradering” ), begränsat stöd för Terminfo och Readline, brist på stöd för andra utgåvor än Python 3.7, bristande stöd för resurskomprimering, oförmåga att korskompilera.

Källa: opennet.ru

Lägg en kommentar