Vydanie PyOxidizer na balenie projektov Pythonu do samostatných spustiteľných súborov

Predloženej prvé vydanie pomôcky PyOxidant, ktorá vám umožňuje zabaliť projekt Python do samostatného spustiteľného súboru, ktorý obsahuje interpret Pythonu a všetky knižnice a zdroje potrebné na prácu. Takéto súbory je možné spustiť v prostrediach bez nainštalovaných nástrojov Pythonu alebo bez ohľadu na požadovanú verziu Pythonu. PyOxidizer môže tiež generovať staticky prepojené spustiteľné súbory, ktoré nie sú prepojené ani so systémovými knižnicami. Kód projektu je napísaný v jazyku Rust a distribuovaný pod licenciou MPL (Mozilla Public License) 2.0.

Projekt je založený na rovnomennom module pre jazyk Rust, ktorý umožňuje vložiť tlmočníka Pythonu do programov Rust a spúšťať v nich skripty Python. PyOxidizer sa teraz posunul ďalej ako doplnok Rust a stavia sa ako nástroj na vytváranie a distribúciu samostatných balíkov Python pre širšie publikum. Pre tých, ktorí nepotrebujú distribuovať aplikácie ako spustiteľný súbor, PyOxidizer poskytuje možnosť generovať knižnice vhodné na prepojenie s akoukoľvek aplikáciou, aby sa do nich vložil interpret Pythonu a potrebná sada rozšírení.

Pre koncových používateľov doručovanie projektu ako jedného spustiteľného súboru výrazne zjednodušuje inštaláciu a odstraňuje prácu s výberom závislostí, čo je relevantné napríklad pri zložitých projektoch Pythonu, ako sú napríklad editory videa. Pre vývojárov aplikácií vám PyOxidizer umožňuje ušetriť čas na organizáciu doručenia aplikácie bez potreby použitia rôznych nástrojov na generovanie balíkov pre rôzne operačné systémy.

Použitie navrhovaných zostáv má pozitívny vplyv aj na výkon – súbory generované v PyOxidizer bežia rýchlejšie ako pri použití systému Python z dôvodu eliminácie importov a definovania základných modulov. V PyOxidizer sa moduly importujú z pamäte – všetky vstavané moduly sa okamžite načítajú do pamäte a následne sa používajú bez prístupu na disk). V testoch sa čas spustenia aplikácie pri použití PyOxidizer skráti približne na polovicu.

Z už existujúcich podobných projektov môžeme poznamenať: PyInstaller (rozbalí súbor do dočasného adresára a importuje z neho moduly), py2exe (viazané na platformu Windows a vyžaduje distribúciu viacerých súborov), py2app (prepojené s macOS), cx-freeze (vyžaduje samostatné balenie závislostí), Shiv и PEX (vytvorte balík vo formáte zip a vyžaduje Python v systéme), Nuitka (kompiluje kód namiesto toho, aby vložil interpreter), pinsist (viazané na Windows), PyRun (vlastnícky vývoj bez vysvetlenia princípov fungovania).

V súčasnej fáze vývoja už PyOxidizer implementoval hlavnú funkcionalitu na generovanie spustiteľných súborov pre Windows, macOS a Linux. Z možností, ktoré ešte nie sú k dispozícii oslavoval nedostatok typického prostredia na zostavenie, neschopnosť generovať balíčky vo formátoch MSI, DMG a deb/rpm, problémy s baliacimi projektmi, ktoré zahŕňajú komplexné rozšírenia C, chýbajúce príkazy sprevádzajúce doručenie ("pyoxidizer add", "pyoxidizer analysis" a "pyoxidizer" upgrade"), obmedzená podpora pre Terminfo a Readline, žiadna podpora pre iné vydania ako Python 3.7, žiadna podpora pre kompresiu zdrojov, žiadna krížová kompilácia.

Zdroj: opennet.ru

Pridať komentár