PyOxidizeri väljalase Pythoni projektide pakendamiseks iseseisvateks täitmisfailideks

Tutvustatakse utiliidi esimene väljalase PyOksideerija, mis võimaldab Pythonis projekti pakendada iseseisva käivitatava faili vormis, kaasa arvatud Pythoni tõlk ja kõik tööks vajalikud teegid ja ressursid. Selliseid faile saab käivitada keskkondades, kus pole installitud Pythoni tööriistu või olenemata Pythoni nõutavast versioonist. PyOxidizer võib genereerida ka staatiliselt lingitud käivitatavaid faile, mis ei ole lingitud süsteemiteekidega. Projekti kood on kirjutatud Rust ja jaotatud litsentsitud MPL (Mozilla Public License) 2.0 alusel.

Projekt põhineb samanimelisel Rusti keelemoodulil, mis võimaldab Rusti programmidesse põimida Pythoni tõlgi, et neis Pythoni skripte käitada. PyOxidizer on nüüd läinud kaugemale kui Rust lisandmoodul ja seda positsioneeritakse kui vahendit iseseisvate Pythoni pakettide loomiseks ja levitamiseks laiemale publikule. Neile, kes ei pea rakendusi käivitatava failina levitama, pakub PyOxidizer võimalust luua teeke, mis sobivad mis tahes rakendusega linkimiseks, et manustada Pythoni tõlgi ja vajalike laienduste komplekt.

Lõppkasutajate jaoks lihtsustab projekti ühe käivitatava failina edastamine oluliselt installimist ja välistab sõltuvuste valimise töö, mis on oluline näiteks keeruliste Pythoni projektide, näiteks videoredaktorite puhul. Rakenduste arendajate jaoks võimaldab PyOxidizer säästa aega rakenduste tarnimise korraldamisel, ilma et oleks vaja kasutada erinevaid tööriistu erinevate operatsioonisüsteemide pakettide loomiseks.

Kavandatavate sõlmede kasutamisel on positiivne mõju jõudlusele - PyOxidizeris genereeritud failid töötavad kiiremini kui süsteemi Python kasutamisel tänu impordi ja baasmoodulite määratlemise välistamisele. PyOxidizeris imporditakse moodulid mälust – kõik sisseehitatud moodulid laaditakse kohe mällu ja seejärel kasutatakse neid ilma kettale juurdepääsuta). Testides väheneb PyOxidizeri kasutamisel rakenduse käivitamise aeg ligikaudu poole võrra.

Juba olemasolevate sarnaste projektide hulgast võib märkida järgmist: PyInstaller (pakkib faili lahti ajutisse kataloogi ja impordib sealt moodulid), py2exe (seotud Windowsi platvormiga ja nõuab mitme faili levitamist), py2app (seotud macOS-iga), cx-külmutamine (vajab eraldi sõltuvuspakendit), Shiv и PEX (moodustab paketi ZIP-vormingus ja nõuab süsteemis Pythonit), öö (kompileerib tõlgi asemel koodi), pünsist (seotud Windowsiga) PyRun (varaline arendus ilma tööpõhimõtete selgitamiseta).

Praeguses arendusjärgus on PyOxidizer juba juurutanud põhifunktsioonid käivitatavate failide genereerimiseks Windowsi, macOS-i ja Linuxi jaoks. Hetkel kasutamata võimalustest tähistati standardse ehituskeskkonna puudumine, võimetus genereerida MSI-, DMG- ja deb/rpm-vormingus pakette, probleeme C-keeles keerulisi laiendusi sisaldavate pakkimisprojektidega, edastamist toetavate käskude puudumine ("pyoxidizer add", "pyoxidizer analysis") ja "pyoxidizer upgrade" ), Terminfo ja Readline'i piiratud tugi, muude väljaannete kui Python 3.7 toe puudumine, ressursside tihendamise toe puudumine, ristkompileerimise võimetus.

Allikas: opennet.ru

Lisa kommentaar