Utgivelse av PyOxidizer for å pakke Python-prosjekter til selvstendige kjørbare filer

Introdusert første utgivelse av verktøyet PyOxidizer, som lar deg pakke et prosjekt i Python i form av en selvstendig kjørbar fil, inkludert Python-tolken og alle bibliotekene og ressursene som er nødvendige for arbeidet. Slike filer kan kjøres i miljøer uten Python-verktøy installert eller uavhengig av den nødvendige versjonen av Python. PyOxidizer kan også generere statisk koblede kjørbare filer som ikke er koblet til systembiblioteker. Prosjektkoden er skrevet i Rust og distribuert av lisensiert under MPL (Mozilla Public License) 2.0.

Prosjektet er basert på Rust-språkmodulen med samme navn, som lar deg bygge inn en Python-tolk i Rust-programmer for å kjøre Python-skript i dem. PyOxidizer har nå gått lenger enn å være et Rust-tillegg og blir posisjonert som et verktøy for å bygge og distribuere selvstendige Python-pakker til et bredere publikum. For de som ikke trenger å distribuere applikasjoner som en kjørbar fil, gir PyOxidizer muligheten til å generere biblioteker som er egnet for kobling med hvilken som helst applikasjon for å bygge inn en Python-tolk og det nødvendige settet med utvidelser.

For sluttbrukere vil det å levere prosjektet som en enkelt kjørbar fil forenkle installasjonen og eliminere arbeidet med å velge avhengigheter, noe som er viktig for eksempel for komplekse Python-prosjekter som videoredigerere. For applikasjonsutviklere lar PyOxidizer deg spare tid på å organisere applikasjonslevering, uten å måtte bruke forskjellige verktøy for å lage pakker for forskjellige operativsystemer.

Bruken av de foreslåtte sammenstillingene har også en positiv effekt på ytelsen - filer generert i PyOxidizer kjører raskere enn ved bruk av system Python på grunn av eliminering av import og definisjon av basismoduler. I PyOxidizer importeres moduler fra minnet - alle innebygde moduler lastes umiddelbart inn i minnet og brukes deretter uten tilgang til disk). I tester reduseres applikasjonsstarttiden ved bruk av PyOxidizer med omtrent det halve.

Blant de allerede eksisterende lignende prosjektene kan følgende nevnes: PyInstaller (pakker ut filen i en midlertidig katalog og importerer moduler fra den), py2exe (knyttet til Windows-plattformen og krever at flere filer distribueres), py2app (knyttet til macOS), cx-fryse (krever separat avhengighetspakke), Shiv и PEX (dann en pakke i zip-format og krever Python på systemet), Nuitka (kompilerer koden i stedet for å bygge inn en tolk), pynsist (knyttet til Windows) PyRun (proprietær utvikling uten forklaring av driftsprinsipper).

På det nåværende utviklingsstadiet har PyOxidizer allerede implementert hovedfunksjonaliteten for å generere kjørbare filer for Windows, macOS og Linux. Fra for øyeblikket utilgjengelige muligheter feires mangel på et standard byggemiljø, manglende evne til å generere pakker i MSI-, DMG- og deb/rpm-formater, problemer med pakkeprosjekter som inkluderer komplekse utvidelser i C-språket, mangel på kommandoer for å støtte levering ("pyoxidizer add", "pyoxidizer analyse" og «pyoxidizer-oppgradering» ), begrenset støtte for Terminfo og Readline, mangel på støtte for andre utgivelser enn Python 3.7, manglende støtte for ressurskomprimering, manglende evne til krysskompilering.

Kilde: opennet.ru

Legg til en kommentar