første udgave af værktøjet , der gør det muligt at pakke et projekt skrevet i Python i form af en selvstændig eksekverbar fil, der inkluderer Python-fortolkeren og alle nødvendige biblioteker og ressourcer. Sådanne filer kan udføres i miljøer uden installeret Python-værktøj sæt eller uafhængigt af, om den nødvendige version af Python er til stede. PyOxidizer kan også generere statisk sammenkoblede eksekverbare filer, som ikke er bundet til systembiblioteker. Projektkoden er skrevet i Rust, og under MPL (Mozilla Public License) 2.0.
Projektet er baseret på et modul med samme navn til Rust-sproget, som gør det muligt at integrere Python-fortolkeren i Rust-programmer til at udføre Python-scripts. PyOxidizer er nu gået ud over et supplement til Rust og præsenteres som et tilgængeligt værktøj for et bredere publikum til at danne og distribuere selvforsynende pakker med Python. For dem, der ikke har brug for at distribuere applikationer som eksekverbare filer, giver PyOxidizer muligheder for at generere biblioteker, der kan linkes med enhver applikation for at integrere Python-fortolkeren og det nødvendige sæt af udvidelser.
For slutt brugere gør leveringen af projektet som en enkelt eksekverbar fil installationen betydeligt enklere og eliminerer behovet for at finde afhængigheder, hvilket er relevant for komplekse Python-projekter som videoredigeringsprogrammer. For udviklere gør PyOxidizer det muligt at spare tid på at organisere leveringen af applikationen uden behov for at bruge forskellige værktøjer til at danne pakker for forskellige operativsystemer.
Brugen af de foreslåede builds har også en positiv indflydelse på ydeevnen — de filer, der genereres i PyOxidizer, køres hurtigere end ved brug af system-Python på grund af udelukkelse af import og definition af grundlæggende moduler. I PyOxidizer importeres moduler fra hukommelsen — alle indbyggede moduler indlæses straks i hukommelsen og bruges derefter uden at skulle tilgå disken. I tests reduceres opstartstiden for applikationen, når der anvendes PyOxidizer, med cirka den halve tid.
Af allerede eksisterende lignende projekter kan nævnes: (udpakker filen til en midlertidig mappe og importerer moduler fra den), (bundet til Windows-platformen og kræver distribution af flere filer), (bundet til macOS), (kræver særskilt emballering af afhængigheder), og (danner pakke i zip-format og kræver, at Python er installeret på systemet), (kompilerer koden og integrerer ikke fortolkeren), (bundet til Windows), (proprietær udvikling uden forklaring af funktionsprincipperne).
På nuværende udviklingstrin har PyOxidizer allerede implementeret den grundlæggende funktionalitet til at generere eksekverbare filer til Windows, macOS og Linux. Blandt de stadig ikke tilgængelige muligheder er manglen på et standard bygget miljø, umuligheden af at generere pakker i formaterne MSI, DMG og deb/rpm, problemer med at pakke projekter, der inkluderer komplekse C-udvidelser, mangel på kommandoer til at støtte levering ('pyoxidizer add', 'pyoxidizer analyze' og 'pyoxidizer upgrade'), begrænset support for Terminfo og Readline, mangel på understøttelse af versioner der er forskellige fra Python 3.7, mangel på understøttelse af komprimering af ressourcer, og umuligheden af krydskompilering.
Kilde: opennet.ru
