Izlazak PyOxidizer-a za pakiranje Python projekata u samostalne izvršne datoteke

Predstavljen prvo izdanje alata PyOxidizer, koji omogućuje pakiranje projekta napisanog u Pythonu u oblik samostalne izvršne datoteke koja uključuje Python interpreter i sve potrebne biblioteke i resurse. Takve datoteke mogu se izvoditi u okruženjima bez instaliranog alata Python ili neovisno o dostupnosti potrebne verzije Pythona. PyOxidizer također može stvoriti statički povezane izvršne datoteke koje nisu vezane ni na sistemske biblioteke. Izvorni kod projekta napisan je u Rustu i distribuira se pod MPL (Mozilla Public License) 2.0.

Projekt se temelji na istoimenom modulu za Rust, koji omogućuje ugrađivanje Python interpretera u Rust programe radi izvođenja Python skripti. PyOxidizer sada je nadmašio dodatak za Rust i pozicionira se kao alat dostupan široj publici za stvaranje i distribuciju samostalnih paketa s Pythonom. Za one koji ne trebaju distribuirati aplikacije u obliku izvršne datoteke, PyOxidizer nudi mogućnosti generiranja biblioteka koje se mogu povezati s bilo kojim aplikacijama za ugrađivanje Python interpretera i potrebnog seta proširenja.

Za krajnje korisnike, dostava projekta u obliku jedne izvršne datoteke značajno pojednostavljuje instalaciju i oslobađa od potrebe za odabiranjem zavisnosti, što je posebno važno za složene projekte u Pythonu, kao što su video uređivači. Za programere aplikacija, PyOxidizer omogućuje uštedu vremena u organizaciji isporuke aplikacije, bez potrebe za korištenjem raznih alata za pakiranje za različite operativne sustave.

Korištenje predloženih izdanja također pozitivno utječe na performanse - datoteke generirane u PyOxidizeru pokreću se brže nego pri korištenju sistemskog Pythona zbog izbjegavanja uvoza i određivanja osnovnih modula. U PyOxidizeru moduli se uvoze iz memorije - svi ugrađeni moduli odmah se učitavaju u memoriju i zatim koriste bez pristupa disku. U testovima, vrijeme pokretanja aplikacije pri korištenju PyOxidizera smanjuje se otprilike dvostruko.

Od postojećih sličnih projekata mogu se istaknuti: PyInstaller (raspakira datoteku u privremeni katalog i uvozi module iz njega), py2exe (vezan za Windows platformu i zahtijeva distribuciju više datoteka), py2app (vezan za macOS), cx-freeze (zahtijeva zasebno pakiranje ovisnosti), Shiv i PEX (formira paket u zip formatu i zahtijeva prisutnost Pythona u sustavu), Nuitka (kompajlira kod, a ne ugrađuje interpreter), pynsist (vezan za Windows), PyRun (proprietarna razvojna bez objašnjenja principa rada).

U trenutnoj fazi razvoja PyOxidizer već je implementirana osnovna funkcionalnost za generiranje izvršnih datoteka za Windows, macOS i Linux. Od trenutno nedostupnih mogućnosti ističe se nedostatak standardnog građevinskog okruženja, nemogućnost generiranja paketa u formatima MSI, DMG i deb/rpm, problemi s pakiranjem projekata koji uključuju složene ekstenzije na jeziku C, nedostatak komandi za podršku isporukama ('pyoxidizer add', 'pyoxidizer analyze' i 'pyoxidizer upgrade'), ograničena podrška za Terminfo i Readline, nedostatak podrške za verzije osim Python 3.7, nedostatak podrške za kompresiju resursa, nemogućnost križnog kompiliranja.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster