Llançament de PyOxidizer per empaquetar projectes Python en executables autònoms

Presentat primer llançament de la utilitat Pyoxidant, que us permet empaquetar un projecte Python en un fitxer executable autònom que inclou l'intèrpret de Python i totes les biblioteques i recursos necessaris per treballar. Aquests fitxers es poden executar en entorns sense instal·lacions de Python o independentment de la versió requerida de Python. PyOxidizer també pot generar executables enllaçats estàticament que tampoc estan enllaçats a biblioteques del sistema. El codi del projecte està escrit en Rust i Distribuït per amb llicència sota MPL (Mozilla Public License) 2.0.

El projecte es basa en el mòdul del mateix nom per al llenguatge Rust, que permet incrustar un intèrpret de Python als programes Rust per executar-hi scripts Python. PyOxidizer ha anat més enllà de ser un complement de Rust i s'està posicionant com una eina per construir i distribuir paquets Python autònoms per a un públic més ampli. Per a aquells que no necessiten distribuir aplicacions com a executable, PyOxidizer ofereix la possibilitat de generar biblioteques adequades per enllaçar amb qualsevol aplicació per incrustar-hi un intèrpret de Python i el conjunt d'extensions necessaris.

Per als usuaris finals, lliurar el projecte com a fitxer executable únic simplifica molt la instal·lació i elimina la feina de seleccionar dependències, que és rellevant, per exemple, per a projectes Python complexos, com ara editors de vídeo. Per als desenvolupadors d'aplicacions, PyOxidizer permet estalviar temps organitzant el lliurament d'una aplicació, sense haver d'utilitzar diferents eines per generar paquets per a diferents sistemes operatius.

L'ús dels conjunts proposats també té un efecte positiu en el rendiment: els fitxers generats a PyOxidizer funcionen més ràpid que quan s'utilitza el sistema Python a causa de l'eliminació d'importacions i la definició de mòduls bàsics. A PyOxidizer, els mòduls s'importen de la memòria: tots els mòduls integrats es carreguen immediatament a la memòria i després s'utilitzen sense accés al disc). A les proves, el temps d'inici de l'aplicació quan s'utilitza PyOxidizer es redueix aproximadament a la meitat.

Dels projectes similars ja existents, podem destacar: PyInstaller (desempaqueta el fitxer en un directori temporal i n'importa mòduls), py2exe (lligat a la plataforma Windows i requereix la distribució de diversos fitxers), py2app (vinculat a macOS), cx-congelar (requereix un paquet de dependència separat), Shiv и PEX (forma un paquet en format zip i requereix Python al sistema), Nuitka (compila el codi en lloc d'incrustar l'intèrpret), pinsist (lligat a Windows), PyRun (desenvolupament propi sense explicar els principis de funcionament).

На текущем этапе развития в PyOxidizer уже реализована основная функциональность по генерации исполняемых файлов для Windows, macOS и Linux. Из пока недоступных возможностей celebrat manca d'un entorn de construcció típic, incapacitat per generar paquets en formats MSI, DMG i deb/rpm, problemes amb projectes d'embalatge que inclouen extensions C complexes, manca d'ordres per acompanyar el lliurament ("pyoxidizer add", "pyoxidizer analysis" i "pyoxidizer". upgrade"), suport limitat per a Terminfo i Readline, sense suport per a versions diferents de Python 3.7, sense suport per a la compressió de recursos, sense compilació creuada.

Font: opennet.ru

Afegeix comentari