Izdanje PyOxidizera za pakiranje Python projekata u samostalne izvršne datoteke

Predstavljeno prvo izdanje uslužnog programa PyOksidizator, koji vam omogućuje pakiranje projekta u Pythonu u obliku samostalne izvršne datoteke, uključujući Python tumač i sve biblioteke i resurse potrebne za rad. Takve datoteke mogu se izvoditi u okruženjima bez instaliranog Python alata ili bez obzira na potrebnu verziju Pythona. PyOxidizer također može generirati statički povezane izvršne datoteke koje nisu povezane sa sistemskim bibliotekama. Projektni kod je napisan u Rustu i distribuira licenciran pod MPL (Mozilla Public License) 2.0.

Projekt se temelji na istoimenom jezičnom modulu Rust, koji vam omogućuje ugradnju Python tumača u Rust programe za pokretanje Python skripti u njima. PyOxidizer je sada otišao dalje od Rust dodatka i pozicioniran je kao alat za izgradnju i distribuciju samostalnih Python paketa široj publici. Za one koji ne trebaju distribuirati aplikacije kao izvršnu datoteku, PyOxidizer pruža mogućnost generiranja biblioteka prikladnih za povezivanje s bilo kojom aplikacijom za ugradnju Python tumača i potrebnog skupa proširenja.

Za krajnje korisnike isporuka projekta kao jedne izvršne datoteke uvelike pojednostavljuje instalaciju i eliminira posao odabira ovisnosti, što je važno, na primjer, za složene Python projekte kao što su uređivači videa. Za programere aplikacija, PyOxidizer omogućuje uštedu vremena organiziranja isporuke aplikacija, bez potrebe za korištenjem različitih alata za izradu paketa za različite operativne sustave.

Korištenje predloženih sklopova također ima pozitivan učinak na performanse - datoteke generirane u PyOxidizeru rade brže nego kada se koristi sustav Python zbog eliminacije uvoza i definiranja osnovnih modula. U PyOxidizeru moduli se uvoze iz memorije - svi ugrađeni moduli se odmah učitavaju u memoriju i zatim koriste bez pristupa disku). U testovima, vrijeme pokretanja aplikacije kada se koristi PyOxidizer smanjeno je za otprilike polovicu.

Među već postojećim sličnim projektima mogu se istaknuti sljedeći: PyInstaller (raspakira datoteku u privremeni direktorij i iz njega uvozi module), py2exe (vezano za Windows platformu i zahtijeva više datoteka za distribuciju), py2app (vezano za macOS), cx-zamrzni (zahtijeva zasebno pakiranje ovisnosti), Shiv и PEX (formirati paket u zip formatu i zahtijeva Python na sustavu), noć (kompilira kod umjesto ugrađivanja tumača), pynsist (vezano za Windows) PyRun (vlasnički razvoj bez objašnjenja principa rada).

U trenutnoj fazi razvoja, PyOxidizer je već implementirao glavnu funkcionalnost za generiranje izvršnih datoteka za Windows, macOS i Linux. Od trenutno nedostupnih prilika slavni nedostatak standardnog okruženja za izradu, nemogućnost generiranja paketa u MSI, DMG i deb/rpm formatima, problemi s projektima pakiranja koji uključuju složene ekstenzije u jeziku C, nedostatak naredbi za podršku isporuke (“pyoxidizer add”, “pyoxidizer analysis” i “pyoxidizer upgrade” ), ograničena podrška za Terminfo i Readline, nedostatak podrške za izdanja koja nisu Python 3.7, nedostatak podrške za kompresiju resursa, nemogućnost unakrsnog prevođenja.

Izvor: opennet.ru

Dodajte komentar