Lëshimi i PyOxidizer për paketimin e projekteve të Python në ekzekutues të pavarur

prezantuar lëshimi i parë i programit Pyoksidues, i cili ju lejon të paketoni një projekt në Python në formën e një skedari të ekzekutueshëm të pavarur, duke përfshirë interpretuesin Python dhe të gjitha bibliotekat dhe burimet e nevojshme për punën. Skedarë të tillë mund të ekzekutohen në mjedise pa instrumente Python të instaluar ose pavarësisht nga versioni i kërkuar i Python. PyOxidizer gjithashtu mund të gjenerojë skedarë të ekzekutueshëm të lidhur statikisht që nuk janë të lidhur me bibliotekat e sistemit. Kodi i projektit është shkruar në Rust dhe shperndare nga licencuar sipas MPL (Mozilla Public License) 2.0.

Projekti bazohet në modulin e gjuhës Rust me të njëjtin emër, i cili ju lejon të futni një interpretues Python në programet Rust për të ekzekutuar skriptet Python në to. PyOxidizer tani ka shkuar përtej të qenit një shtesë Rust dhe po pozicionohet si një mjet për ndërtimin dhe shpërndarjen e paketave të pavarura Python për një audiencë më të gjerë. Për ata që nuk kanë nevojë të shpërndajnë aplikacione si skedar të ekzekutueshëm, PyOxidizer ofron mundësinë për të gjeneruar biblioteka të përshtatshme për t'u lidhur me çdo aplikacion për të futur një interpretues Python dhe grupin e nevojshëm të shtesave.

Për përdoruesit fundorë, dhënia e projektit si një skedar i vetëm i ekzekutueshëm thjeshton shumë instalimin dhe eliminon punën e zgjedhjes së varësive, gjë që është e rëndësishme, për shembull, për projektet komplekse të Python, siç janë redaktorët e videove. Për zhvilluesit e aplikacioneve, PyOxidizer ju lejon të kurseni kohë në organizimin e dorëzimit të aplikacioneve, pa pasur nevojë të përdorni mjete të ndryshme për të krijuar paketa për sisteme të ndryshme operative.

Përdorimi i asambleve të propozuara ka gjithashtu një efekt pozitiv në performancën - skedarët e krijuar në PyOxidizer funksionojnë më shpejt sesa kur përdorni sistemin Python për shkak të eliminimit të importit dhe përcaktimit të moduleve bazë. Në PyOxidizer, modulet importohen nga memoria - të gjitha modulet e integruara ngarkohen menjëherë në memorie dhe më pas përdoren pa hyrë në disk). Në teste, koha e fillimit të aplikacionit kur përdoret PyOxidizer zvogëlohet përafërsisht përgjysmë.

Ndër projektet e ngjashme tashmë ekzistuese, mund të vërehen këto: PyInstaller (shpaket skedarin në një direktori të përkohshme dhe importon module prej saj), py2exe (i lidhur me platformën Windows dhe kërkon shumë skedarë për t'u shpërndarë), py2app (i lidhur me macOS), cx-ngrirje (kërkon paketim të veçantë të varësisë), Shiva и PEX (formoni një paketë në format zip dhe kërkon Python në sistem), Nuitka (përpilon kodin në vend që të vendosë një përkthyes), pynist (i lidhur me Windows) PyRun (zhvillimi i pronarit pa shpjegim të parimeve të funksionimit).

Në fazën aktuale të zhvillimit, PyOxidizer tashmë ka zbatuar funksionalitetin kryesor për gjenerimin e skedarëve të ekzekutueshëm për Windows, macOS dhe Linux. Nga mundësitë e padisponueshme aktualisht i njohur mungesa e një mjedisi standard ndërtimi, pamundësia për të gjeneruar paketa në formatet MSI, DMG dhe deb/rpm, probleme me projektet e paketimit që përfshijnë zgjerime komplekse në gjuhën C, mungesa e komandave për të mbështetur shpërndarjen ("shtimi i pyoksiduesit", "analiza e pyoksiduesit" dhe "përmirësimi i pyoxidizer" ), mbështetje e kufizuar për Terminfo dhe Readline, mungesa e mbështetjes për versione të tjera përveç Python 3.7, mungesa e mbështetjes për kompresimin e burimeve, pamundësia për të ndërthurur.

Burimi: opennet.ru

Shto një koment