Néhány nappal ezelőtt a fejlesztők bemutatták a PyOxidizer segédprogram első verzióját, amelyet felajánlanak egy segédprogram, amely egy Python-projekt külön futtatható fájlként történő csomagolására használható, beleértve a Python tolmácsot, valamint az összes szükséges könyvtárat és erőforrást.
Az ilyen fájlok futtathatóak a telepített Python eszköztár nélkül, vagy a Python szükséges verziójának elérhetőségétől függetlenül.
A PyOxidizer statikusan kapcsolódó futtatható fájlokat is létrehozhat, amelyek nincsenek társítva a rendszer könyvtárakhoz. A projekt kódja Rust nyelven íródott, és az MPL (Mozilla Public License) 2.0 alatt került terjesztésre.
A PyOxidizerről?
A projekt a Rust nyelv azonos nevű modulján alapul, amely lehetővé teszi Python tolmács beágyazását a Rust programokba hogy futtasson rajtuk Python szkripteket.
PyOxidizer most túllépett a Rust pluginján, és a szélesebb közönség számára elérhető eszközként önálló Python-csomagok építéséhez és terjesztéséhez van elhelyezve.
PyOxidizer segédprogram, amelynek célja a Python-alkalmazások terjesztésének problémájának megoldása.
Azok számára, akiknek nem kell futtatható fájl formájában terjeszteniük az alkalmazásokat, a PyOxidizer lehetőséget kínál megfelelő könyvtárak létrehozására, amelyek összekapcsolhatók bármely alkalmazással, hogy beágyazhassák a Python-tolmácsot és a szükséges bővítménykészletet.
A Python alkalmazás terjesztését általában megoldatlan problémának tekintik, mivel Russel Keith-Magee a kódelosztást egzisztenciális fenyegetésként határozta meg a hosszú élettartamra a Python számára. Szavai szerint a Pythonnak soha nem volt konzisztens története arról, hogyan adom át a kódomat másnak, különösen, ha ez a másik személy nem fejlesztő, és csak az alkalmazásomat akarja használni.
Végfelhasználók számára egy projekt futtatása egyetlen futtatható fájl formájában Ez nagymértékben leegyszerűsíti a telepítést és kiküszöböli a függőségek kiválasztásának munkáját, ami fontos például olyan összetett Python-projekteknél, mint például a videoszerkesztők.
Míg viszont Az alkalmazásfejlesztők számára a PyOxidizer lehetővé teszi számukra, hogy időt takarítsanak meg egy alkalmazás kézbesítésének megszervezésében 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.
Hogyan működik a PyOxidizer?
A javasolt buildek használata pozitívan hat a teljesítményre is: a PyOxidizer alkalmazásban létrehozott fájlok gyorsabban futnak, mint a Python rendszer használata esetén az import eltávolításával és az alapvető modulok meghatározásával.
A PyOxidizerben modulokat importálunk a memóriából (Az összes beépített modult azonnal betölti a memóriába, majd lemezelérés nélkül használja.) A tesztelés során az alkalmazás PyOxidizer alkalmazással történő indítási ideje nagyjából a felére csökken.
Hasonló meglévő projektekből megfigyelhető: PyInstaller (kicsomagolja a fájlt egy ideiglenes könyvtárba, és modulokat importál belőle).
- Py2exe (a Windows platformhoz kapcsolódik és több fájlterjesztést igényel), py2app (a MacOS-hoz kapcsolódik)
- Cx-freeze (külön függőségi csomagolást igényel), Shiv és PEX (zip csomagot alkotnak, és Python szükséges a rendszeren)
- Nuitka (a kódot fordítja, nem a beágyazott tolmács), pynsist (Windows-hoz kapcsolódik), PyRun (saját fejlesztés a működési elvek magyarázata nélkül).
A jelenlegi fejlődési szakaszban A PyOxidizer már megvalósította a fő funkciót a futtatható fájlok előállításához Windows, MacOS és Linux számára.
A messzemenő képességek közül megjegyezték a szabványos fordítási környezet hiányát, az MSI, DMG és deb / rpm formátumú csomagok előállításának képtelenségét, a C nyelv komplex kiterjesztésével járó projektek csomagolási problémáival.
Míg a kiadást támogató utasítások hiánya ("pyoxidizer add", "pyoxidizer analysis" és "pyoxidizer upgrade") és a Terminfo és a Readline korlátozott támogatása, a Python 3.7-től eltérő verziók támogatásának hiánya, az erőforrás-tömörítés támogatásának hiánya, képtelen keresztbe fordítani.
forrás: https://pyoxidizer.readthedocs.io