PyOxidizer una utilitat per empaquetar projectes de Python en arxius executables

Pyoxidant

Fa uns dies uns desenvolupadors van presentar la primera versió de la utilitat PyOxidizer, la qual s'ofereix com una utilitat que serveix per poder empaquetar un projecte de Python en forma d'un fitxer executable independent, inclòs l'intèrpret de Python i totes les biblioteques i recursos necessaris.

Aquests fitxers es poden executar en entorns sense el kit d'eines de Python instal·lat o independentment de la disponibilitat de la versió requerida de Python.

PyOxidizer també pot generar executables relacionats estàticament que no estan associats amb les biblioteques del sistema. El codi del projecte està escrit en el llenguatge Rust i es distribueix sota la llicència MPL (Mozilla Public License) 2.0.

Sobre PyOxidizer?

El Projecte es basa en el mòdul del mateix nom per al llenguatge Rust, que us permet incrustar un intèrpret de Python en els programes de Rust per executar scripts de Python en ells.

Pyoxidant ara ha anat més enllà del complement per a Rust i està posicionat com una eina disponible per a un públic més ampli per construir i distribuir paquets de Python independents.

PyOxidizer és una utilitat que té com a objectiu resoldre el problema de com distribuir aplicacions de Python.

Per a aquells que no necessiten distribuir aplicacions en forma d'un fitxer executable, PyOxidizer ofereix oportunitats per generar biblioteques adequades per vincular-les amb qualsevol aplicació per incrustar l'intèrpret de Python i el conjunt d'extensions necessaris.

La distribució d'aplicacions de Python generalment es considera un problema no resolt doncs per a Russel Keith-Magee va identificar la distribució de codis és una amenaça existencial per a la longevitat, per a Python. En les seves paraules, Python mai ha tingut una història consistent sobre com dono el meu codi a una altra persona, especialment si aquesta altra persona no és un desenvolupador i només vol utilitzar la meva aplicació.

Per als usuaris finals, el lliurament d'un projecte en forma d'un fitxer executable simplifica en gran mesura la instal·lació i elimina el treball de selecció de dependències, cosa que és important, per exemple, per a projectes complexos de Python, com els editors de vídeo.

Mentre que d'altra banda per als desenvolupadors d'aplicacions, PyOxidizer us permet poder estalviar temps en l'organització del lliurament d'una aplicació sense haver de fer servir diferents eines per crear paquets per a diferents sistemes operatius.

Com funciona PyOxidizer?

L'ús de les compilacions proposades també té un efecte positiu en el rendiment: els fitxers generats a PyOxidizer s'executen més ràpid que utilitzant el sistema Python en eliminar les importacions i definir els mòduls bàsics.

A PyOxidizer, els mòduls s'importen de la memòria (tots els mòduls incorporats es carreguen immediatament a la memòria i després s'usen sense accedir al disc). A les proves, el temps d'inici de l'aplicació amb PyOxidizer es redueix a la meitat aproximadament.

Des de projectes similars ja existents, és possible observar: PyInstaller (desempaqueta el fitxer en un directori temporal i importa mòduls del fitxer).

  • Py2exe (vinculat a la plataforma Windows i requereix la distribució de diversos fitxers), py2app (vinculat a macOS)
  • Cx-freeze (requereix empaquetat separat de dependències ), Shiv i PEX (formen un paquet en format zip i requereixen Python al sistema)
  • Nuitka (compila el codi, no l'intèrpret incrustat), pynsist (vinculat a Windows), PyRun (desenvolupament propietari sense explicació dels principis de funcionament).

En l'etapa actual de desenvolupament, PyOxidizer ja ha implementat la funcionalitat principal per generar fitxers executables per a Windows, macOS i Linux.

De les capacitats de llarg abast assenyalat labsència dun entorn de compilació estàndard, la incapacitat per generar un paquet en format MSI, la DMG i deb/rpm, amb problemes dempaquetament de projectes que involucren extensions complexes per al llenguatge C.

Mentre que l'absència d'instruccions per donar suport al lliurament (pyoxidizer add, pyoxidizer analyze i pyoxidizer upgrade) i el suport limitat per a Terminfo i Readline, manca de suport per a versions que no siguin Python 3.7, manca de suport per a compressió de recursos, incapacitat de compilació creuada.

font: https://pyoxidizer.readthedocs.io


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.