Frigivelse af PyOxidizer til at pakke Python-projekter til selvstændige eksekverbare filer

Introduceret første udgivelse af hjælpeprogrammet PyOxidizer, som giver dig mulighed for at pakke et Python-projekt ind i en selvstændig eksekverbar fil, der inkluderer Python-fortolkeren og alle de biblioteker og ressourcer, der er nødvendige for arbejdet. Sådanne filer kan køres i miljøer uden Python-værktøjer installeret eller uanset den påkrævede version af Python. PyOxidizer kan også generere statisk forbundne eksekverbare filer, der heller ikke er knyttet til systembiblioteker. Projektkoden er skrevet i Rust og distribueret af licenseret under MPL (Mozilla Public License) 2.0.

Projektet er baseret på modulet af samme navn til Rust-sproget, som giver dig mulighed for at indlejre en Python-fortolker i Rust-programmer for at udføre Python-scripts i dem. PyOxidizer har nu bevæget sig ud over at være en Rust-tilføjelse og positionerer sig som et værktøj til at bygge og distribuere selvstændige Python-pakker til et bredere publikum. For dem, der ikke har brug for at distribuere applikationer som en eksekverbar, giver PyOxidizer muligheden for at generere biblioteker, der er egnede til at forbinde med enhver applikation for at indlejre en Python-fortolker og det nødvendige sæt udvidelser i dem.

For slutbrugere forenkler levering af projektet som en enkelt eksekverbar fil i høj grad installationen og eliminerer arbejdet med at vælge afhængigheder, hvilket er relevant for for eksempel komplekse Python-projekter, såsom videoredigerere. For applikationsudviklere giver PyOxidizer dig mulighed for at spare tid på at organisere leveringen af ​​en applikation uden at skulle bruge forskellige værktøjer til at generere pakker til forskellige operativsystemer.

Brugen af ​​de foreslåede samlinger har også en positiv effekt på ydeevnen - filerne genereret i PyOxidizer kører hurtigere end ved brug af systemet Python på grund af eliminering af import og definition af basismoduler. I PyOxidizer importeres moduler fra hukommelsen - alle indbyggede moduler indlæses straks i hukommelsen og bruges derefter uden diskadgang). I test er applikationens opstartstid ved brug af PyOxidizer reduceret med cirka det halve.

Af de allerede eksisterende lignende projekter kan vi bemærke: PyInstaller (pakker filen ud i en midlertidig mappe og importerer moduler fra den), py2exe (bundet til Windows-platformen og kræver distribution af flere filer), py2app (bundet til macOS), cx-frys (kræver separat afhængighedspakke), Shiv и PEX (dann en pakke i zip-format og kræver Python på systemet), Nuitka (kompilerer koden i stedet for at indlejre tolken), pinsister (bundet til Windows), PyRun (proprietær udvikling uden at forklare principperne for drift).

På det nuværende udviklingstrin har PyOxidizer allerede implementeret hovedfunktionaliteten til generering af eksekverbare filer til Windows, macOS og Linux. Af de muligheder, der endnu ikke er tilgængelige fejres mangel på et typisk byggemiljø, manglende evne til at generere pakker i MSI-, DMG- og deb/rpm-formater, problemer med pakkeprojekter, der inkluderer komplekse C-udvidelser, mangel på kommandoer til at ledsage levering ("pyoxidizer add", "pyoxidizer analyse" og "pyoxidizer upgrade" ), begrænset understøttelse af Terminfo og Readline, ingen understøttelse af andre udgivelser end Python 3.7, ingen understøttelse af ressourcekomprimering, ingen krydskompilering.

Kilde: opennet.ru

Tilføj en kommentar