A PyOxidizer kiadása a Python projektek önálló végrehajtható fájlokba történő csomagolásához

Által benyújtott a segédprogram első kiadása PyOxidizer, amely lehetővé teszi, hogy egy projektet Pythonban önálló végrehajtható fájl formájában csomagoljon, beleértve a Python interpretert és a munkához szükséges összes könyvtárat és erőforrást. Az ilyen fájlok végrehajthatók olyan környezetben, ahol nincs telepítve Python-eszköz, vagy függetlenül a Python szükséges verziójától. A PyOxidizer statikusan csatolt futtatható fájlokat is generálhat, amelyek nincsenek rendszerkönyvtárhoz kapcsolva. A projekt kódja Rust és nyelven van írva forgalmazza licence az MPL (Mozilla Public License) 2.0.

A projekt az azonos nevű Rust nyelvi modulon alapul, amely lehetővé teszi Python-tolmács beágyazását a Rust programokba, amelyekben Python-szkripteket futtathat. A PyOxidizer mára túlmutat a Rust-kiegészítésen, és az önálló Python-csomagok szélesebb közönség számára történő létrehozásának és terjesztésének eszközeként jelenik meg. Azok számára, akiknek nem kell futtatható fájlként terjeszteni az alkalmazásokat, a PyOxidizer lehetőséget biztosít olyan könyvtárak létrehozására, amelyek alkalmasak bármely alkalmazáshoz való kapcsolódásra, hogy beágyazzák a Python-értelmezést és a szükséges kiterjesztéseket.

A végfelhasználók számára a projekt egyetlen végrehajtható fájlként történő szállítása nagymértékben leegyszerűsíti a telepítést, és kiküszöböli a függőségek kiválasztását, ami fontos például az összetett Python-projekteknél, mint például a videószerkesztők. Az alkalmazásfejlesztők számára a PyOxidizer lehetővé teszi, hogy időt takarítson meg az alkalmazások kézbesítésének megszervezésével, anélkül, hogy különböző eszközöket kellene használnia a különböző operációs rendszerek csomagjainak létrehozásához.

A javasolt összeállítások használata pozitív hatással van a teljesítményre is - a PyOxidizerben generált fájlok gyorsabban futnak, mint a Python rendszer használatakor, az importálás és az alapmodulok meghatározása miatt. A PyOxidizerben a modulok a memóriából importálódnak – minden beépített modul azonnal betöltődik a memóriába, majd a lemez elérése nélkül használható. A tesztek során az alkalmazásindítási idő PyOxidizer használatakor körülbelül a felére csökken.

A már létező hasonló projektek közül a következőket lehet kiemelni: PyInstaller (kicsomagolja a fájlt egy ideiglenes könyvtárba, és importálja onnan a modulokat), py2exe (Windows platformhoz kötve, és több fájl terjesztéséhez szükséges), py2app (macOS-hez kötve), cx-fagyasztás (külön függőségi csomagolást igényel), Shiv и PEX (zip formátumú csomagot alkot, és Python szükséges a rendszeren), Nuitka (Inkább fordítja le a kódot, mintsem tolmácsot ágyaz be), pynsziszt (Windowshoz kötve) PyRun (saját fejlesztés a működési elvek magyarázata nélkül).

A fejlesztés jelenlegi szakaszában a PyOxidizer már megvalósította a Windows, macOS és Linux futtatható fájlok generálására szolgáló fő funkciókat. A jelenleg nem elérhető lehetőségekből neves szabványos összeállítási környezet hiánya, MSI, DMG és deb/rpm formátumú csomagok generálásának képtelensége, problémák a C nyelven összetett kiterjesztést tartalmazó csomagolóprojektekkel, a kézbesítést támogató parancsok hiánya ("pyoxidizer add", "pyoxidizer analysis") és „pyoxidizer upgrade” ), a Terminfo és a Readline korlátozott támogatása, a Python 3.7-től eltérő kiadások támogatásának hiánya, az erőforrás-tömörítés támogatásának hiánya, a keresztfordítás képtelensége.

Forrás: opennet.ru

Hozzászólás