Izdavanje PyOxidizer-a za pakovanje Python projekata u samostalne izvršne datoteke

Poslao prvo izdanje uslužnog programa PyOxidizer, koji vam omogućava da pakujete Python projekat u samostalnu izvršnu datoteku koja uključuje Python interpreter i sve biblioteke i resurse potrebne za rad. Takve datoteke se mogu pokretati u okruženjima bez instaliranih Python alata ili bez obzira na potrebnu verziju Pythona. PyOxidizer također može generirati statički povezane izvršne datoteke koje također nisu povezane sa sistemskim bibliotekama. Kod projekta je napisan u Rust i distribuira licencirano pod MPL (Mozilla Public License) 2.0.

Projekat se zasniva na istoimenom modulu za Rust jezik, koji vam omogućava da ugradite Python interpreter u Rust programe za izvršavanje Python skripti u njima. PyOxidizer je sada otišao dalje od toga da bude Rust dodatak i pozicionira se kao alat za izgradnju i distribuciju samostalnih Python paketa za širu publiku. Za one koji ne moraju distribuirati aplikacije kao izvršnu datoteku, PyOxidizer pruža mogućnost generiranja biblioteka pogodnih za povezivanje sa bilo kojom aplikacijom za ugradnju Python interpretera i potrebnog skupa ekstenzija u njih.

Za krajnje korisnike, isporuka projekta kao jedne izvršne datoteke uvelike pojednostavljuje instalaciju i eliminiše posao odabira zavisnosti, što je relevantno, na primjer, za složene Python projekte, kao što su video uređivači. Za programere aplikacija, PyOxidizer vam omogućava da uštedite vrijeme organizirajući isporuku aplikacije, bez potrebe za korištenjem različitih alata za generiranje paketa za različite operativne sisteme.

Upotreba predloženih sklopova takođe ima pozitivan efekat na performanse - fajlovi generisani u PyOxidizer-u rade brže nego kada se koristi sistem Python zbog eliminacije importa i definisanja osnovnih modula. U PyOxidizeru se moduli 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 je smanjeno za otprilike polovicu.

Od već postojećih sličnih projekata možemo istaći: PyInstaller (raspakira datoteku u privremeni direktorij i uvozi module iz njega), py2exe (vezano za Windows platformu i zahtijeva distribuciju više datoteka), py2app (vezano za macOS), cx-freeze (zahteva odvojeno pakovanje zavisnosti), shiv и PEX (formirajte paket u zip formatu i zahtijeva Python na sistemu), noć (kompajlira kod, a ne ugrađuje tumač), pinsist (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 mogućnosti koje još nisu dostupne slavi se nedostatak tipičnog okruženja za pravljenje, nemogućnost generiranja paketa u MSI, DMG i deb/rpm formatima, problemi s projektima pakovanja koji uključuju složene C ekstenzije, nedostatak naredbi koje prate isporuku ("pyoxidizer add", "pyoxidizer analysis" i "pyoxidizer" nadogradnja" ), ograničena podrška za Terminfo i Readline, bez podrške za druga izdanja osim za Python 3.7, bez podrške za kompresiju resursa, bez unakrsne kompilacije.

izvor: opennet.ru

Dodajte komentar