Programavimas

„PyOxidizer“ naudoja „Rust“, kad sukurtų „Python“ vykdomuosius

Naujo projekto, parašyto „Rust“, tikslas - palengvinti „Python“ programos pakavimą ir platinimą kaip atskirą dvejetainį vykdomąjį failą - tai jau seniai buvo „Python“ kūrėjų skausmo taškas.

„PyOxidizer“, pasak jos „GitHub README“, yra „Rust dėžių rinkinys, palengvinantis bibliotekų ir dvejetainių failų, kuriuose yra„ Python “vertėjų, kūrimą“. Kūrėjai teigia, kad naudojant „PyOxidizer“ galima sukurti „Python“ programos vykdomąjį failą, įterpiantį „Python“ vertėją, be jokių kitų vykdymo laiko priklausomybių.

„PyOxidizer“ reikia įdiegti „Rust 1.31“ ar naujesnę versiją ir pakuoti tik programas, parašytas naudojant „Python 3.7“. Norėdami naudoti „PyOxidizer“, kūrėjas sukuria TOML failą, kuriame aprašoma, kaip įterpti tam tikrą „Python“ programą, tada sukuria ir paleidžia „PyOxidizer“ su aplinkos kintamuoju, nukreipiančiu į tą TOML failą.

„PyOxidizer“ skiriasi nuo kitų pakavimo sprendimų, kai naudoja individualų „Python“ vertėjo kūrimą, sukurtą statiškai susieti ir įterpti į kitą programą. Kiti sprendimai, pvz., „PyInstaller“, perskirsto esamą „CPython .DLL“ atsargą - patogūs ir suderinami, bet nėra labai lankstūs. „PyOxidizer“ taip pat pakuoja „Python“ programos baitinį kodą į vykdomąjį vaizdą ir įkelia jį tiesiai iš atminties (greitai), o ne iš failų sistemos (lėčiau).

Tačiau, kaip ir „PyInstaller“, „PyOxidizer“ neatlieka jokių „Python“ kodo optimizavimų. Kitas projektas „Nuitka“ ne tik renka „Python“ programas atskiriems vykdomiesiems failams, bet ir bando pritaikyti sukurtam kodui efektyvumo optimizavimą. Tačiau „Nuitka“ vis dar laikomas beta lygio projektu, o daugelio numatomų našumo patobulinimų dar nėra.

Pats „PyOxidizer“ vis dar yra labai ankstyvos stadijos projektas. Jis gali generuoti tik „Linux“ dvejetainius failus, nes vienas iš ankstesnių projektų, nuo kurio jis priklauso, įterptoji „CPython“ versija, šiuo metu yra prieinama tik „Linux“ versijose.