Izdaja PyOxidizerja za pakiranje projektov Python v samostojne izvedljive datoteke

Predložil prva izdaja pripomočka PyOksidant, ki vam omogoča, da projekt v Pythonu zapakirate v obliko samostojne izvršljive datoteke, vključno s tolmačem Python ter vsemi knjižnicami in viri, potrebnimi za delo. Takšne datoteke je mogoče izvajati v okoljih brez nameščenega orodja Python ali ne glede na zahtevano različico Pythona. PyOxidizer lahko ustvari tudi statično povezane izvršljive datoteke, ki niso povezane s sistemskimi knjižnicami. Koda projekta je napisana v Rust in distributer licenciran pod MPL (Mozilla Public License) 2.0.

Projekt temelji na istoimenskem jezikovnem modulu Rust, ki vam omogoča vdelavo tolmača Python v programe Rust za izvajanje skriptov Python v njih. PyOxidizer je zdaj presegel le dodatek Rust in je postavljen kot orodje za gradnjo in distribucijo samostojnih paketov Python širšemu občinstvu. Za tiste, ki jim ni treba distribuirati aplikacij kot izvršljive datoteke, PyOxidizer ponuja možnost ustvarjanja knjižnic, primernih za povezovanje s katero koli aplikacijo za vdelavo tolmača Python in potrebnega nabora razširitev.

Za končne uporabnike dostava projekta kot ene same izvedljive datoteke močno poenostavi namestitev in odpravi delo pri izbiranju odvisnosti, kar je na primer pomembno za kompleksne projekte Python, kot so video urejevalniki. Razvijalcem aplikacij PyOxidizer omogoča prihranek časa pri organizaciji dostave aplikacij, ne da bi morali uporabljati različna orodja za ustvarjanje paketov za različne operacijske sisteme.

Uporaba predlaganih sklopov ima tudi pozitiven učinek na zmogljivost - datoteke, ustvarjene v PyOxidizerju, delujejo hitreje kot pri uporabi sistemskega Pythona zaradi odprave uvoza in definiranja osnovnih modulov. V PyOxidizer se moduli uvozijo iz pomnilnika - vsi vgrajeni moduli se takoj naložijo v pomnilnik in se nato uporabljajo brez dostopa do diska). V testih se čas zagona aplikacije pri uporabi PyOxidizer zmanjša za približno polovico.

Med že obstoječimi podobnimi projekti je mogoče opozoriti na naslednje: PyInstaller (razpakira datoteko v začasni imenik in iz njega uvozi module), py2exe (vezano na platformo Windows in zahteva več datotek za distribucijo), py2app (vezan na macOS), cx-zamrznitev (zahteva ločeno pakiranje odvisnosti), Shiva и PEX (oblikujte paket v formatu zip in zahteva Python v sistemu), Nuitka (sestavi kodo namesto vdelave tolmača), pynsist (vezan na Windows) PyRun (lastni razvoj brez razlage principov delovanja).

Na trenutni stopnji razvoja je PyOxidizer že implementiral glavno funkcionalnost za generiranje izvedljivih datotek za Windows, macOS in Linux. Iz trenutno nerazpoložljivih priložnosti praznoval pomanjkanje standardnega gradbenega okolja, nezmožnost generiranja paketov v formatih MSI, DMG in deb/rpm, težave s projekti pakiranja, ki vključujejo kompleksne razširitve v jeziku C, pomanjkanje ukazov za podporo dostave (»pyoxidizer add«, »pyoxidizer analysis«) in »pyoxidizer upgrade« ), omejena podpora za Terminfo in Readline, pomanjkanje podpore za izdaje, ki niso Python 3.7, pomanjkanje podpore za stiskanje virov, nezmožnost navzkrižnega prevajanja.

Vir: opennet.ru

Dodaj komentar