Lanzamento de PyOxidizer para empaquetar proxectos Python en executables autónomos

Presentado primeira versión da utilidade Pyoxidante, que permite empaquetar un proxecto en Python en forma de ficheiro executable autónomo, incluíndo o intérprete de Python e todas as bibliotecas e recursos necesarios para o traballo. Estes ficheiros pódense executar en ambientes sen a ferramenta Python instalada ou independentemente da versión requirida de Python. PyOxidizer tamén pode xerar ficheiros executables ligados estáticamente que non están ligados ás bibliotecas do sistema. O código do proxecto está escrito en Rust e distribuído por licenciado baixo MPL (Mozilla Public License) 2.0.

O proxecto baséase no módulo de linguaxe Rust do mesmo nome, que permite incorporar un intérprete de Python nos programas Rust para executar scripts de Python neles. PyOxidizer agora foi máis aló de ser un complemento de Rust e estase posicionando como unha ferramenta para construír e distribuír paquetes autónomos de Python a un público máis amplo. Para aqueles que non precisan distribuír aplicacións como ficheiro executable, PyOxidizer ofrece a posibilidade de xerar bibliotecas axeitadas para enlazar con calquera aplicación para incorporar un intérprete de Python e o conxunto de extensións necesario.

Para os usuarios finais, entregar o proxecto como un único ficheiro executable simplifica moito a instalación e elimina o traballo de selección de dependencias, o que é importante, por exemplo, para proxectos complexos de Python, como editores de vídeo. Para os desenvolvedores de aplicacións, PyOxidizer permítelle aforrar tempo organizando a entrega de aplicacións, sen necesidade de utilizar diferentes ferramentas para crear paquetes para diferentes sistemas operativos.

O uso dos conxuntos propostos tamén ten un efecto positivo no rendemento: os ficheiros xerados en PyOxidizer corren máis rápido que cando se usa o sistema Python debido á eliminación da importación e definición dos módulos base. En PyOxidizer, os módulos impórtanse da memoria: todos os módulos incorporados cárganse inmediatamente na memoria e úsanse despois sen acceder ao disco). Nas probas, o tempo de inicio da aplicación cando se usa PyOxidizer redúcese aproximadamente á metade.

Entre os proxectos similares xa existentes, cabe destacar os seguintes: PyInstaller (desempaqueta o ficheiro nun directorio temporal e importa módulos del), py2exe (vinculado á plataforma Windows e require que se distribúan varios ficheiros), aplicación py2 (vinculado a macOS), cx-freeze (require paquete de dependencia separado), Shiva и PEX (forma un paquete en formato zip e require Python no sistema), Nuitka (compila o código en lugar de incorporar un intérprete), pinsista (vinculado a Windows) PyRun (desenvolvemento propio sen explicación dos principios de funcionamento).

Na fase actual de desenvolvemento, PyOxidizer xa implementou a principal funcionalidade para xerar ficheiros executables para Windows, macOS e Linux. De oportunidades actualmente non dispoñibles celébrase falta dun ambiente de compilación estándar, incapacidade para xerar paquetes en formatos MSI, DMG e deb/rpm, problemas con proxectos de empaquetado que inclúen extensións complexas en linguaxe C, falta de comandos para soportar a entrega ("pyoxidizer add", "pyoxidizer analysis" e "upgrade de pyoxidizer"), soporte limitado para Terminfo e Readline, falta de soporte para versións distintas de Python 3.7, falta de soporte para a compresión de recursos, incapacidade de compilación cruzada.

Fonte: opennet.ru

Engadir un comentario