Nuitka, un compilador Python que puede convertir aplicaciones Python en binarios C
Nuitka es un proyecto de Python escrito en Python que compila Python en C, es decir un compilador de Python capaz de generar un binario independiente que no requiriera el tiempo de ejecución de Python en el sistema donde se ejecuta.
Nuitka se destaca por mantener, en la medida posible, la máxima compatibilidad con el ecosistema Python, lo que asegura que bibliotecas de terceros como NumPy funcionen de manera fiable. Además, Nuitka se esfuerza por mejorar el rendimiento de los programas Python compilados siempre que sea factible, manteniendo al mismo tiempo una compatibilidad general sólida.
Sin embargo, es importante tener en cuenta que las mejoras de rendimiento no están garantizadas y pueden variar considerablemente según la carga de trabajo. Es posible que algunos programas no experimenten mejoras significativas en el rendimiento. Por lo tanto, como regla general, se recomienda no depender de Nuitka como una solución para mejorar el rendimiento, sino más bien como una herramienta de empaquetado confiable.
Nuitka admite las versiones 2.6, 2.7 o 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 de Python y cuenta con soporte para Linux, FreeBSD, NetBSD, macOS X y Windows, además de soporte para las arquitecturas x86, x86_64 (amd64) y ARM.
¿Qué hay de nuevo en Nuitka 2.0?
Actualmente, Nuitka se encuentra en su versión 2.0 la cual hace poco fue lanzada y en ella se destaca que se han incorporado diversas mejoras y funcionalidades a la configuración del paquete, lo que permite consultar valores de paquetes instalados durante la compilación y utilizar dichos valores para definir el backend. La compatibilidad con variables en la configuración simplifica muchas tareas estándar que anteriormente requerían la conexión de complementos.
Además, se ha añadido soporte para parámetros definidos por el usuario para influir en la configuración de cada paquete. Estos parámetros pueden ser leídos utilizando la nueva función get_parameter y emplearse para seleccionar el comportamiento de los módulos. Por ejemplo, es posible configurar un parámetro para deshabilitar Numba JIT o Torch JIT.
Se introdujo la opción «–include-onefile-external-data» para especificar plantillas de archivos de datos definidos en la configuración pero que deben suministrarse por separado del archivo ejecutable cuando se compila en modo onefile. Asimismo, se agregó la opción «–cf-protection» para configurar el modo de protección CFI (Integridad de flujo de control) en GCC, el cual previene las violaciones del orden de ejecución normal (flujo de control).
De los demás cambios que se destacan:
- Soporte agregado para decisiones de módulo, que permiten a los usuarios influir en la configuración de Nuitka por paquete.
- Adición de soporte para configuraciones de paquetes de Nuitka, lo que facilita la consulta de valores de paquetes instalados.
- Detección de ejecutables compilados demasiado grandes para evitar violaciones de límites de tamaño.
- Mejoras en la generación de informes y la capacidad de crear relaciones públicas con los cambios en Nuitka-Watch.
- Se ha implementado un análisis de tipos de bucles, que se utilizará en el futuro para implementar optimizaciones selectivas.
- Se han agregado optimizaciones para acelerar el trabajo con variables no compartidas y de escape.
- Solución alternativa para funciones privadas como ranuras Qt que no tenían nombres alterados.
- Corrección de la detección de paquetes pip al usar Nuitka.
- Mejoras en el analizador de carga diferida para pydantic.
- Agregado de archivos de datos para varios paquetes, como pyocd y cmsis_pack_manager.
- Correcciones para manejar correctamente las especificaciones ampliadas en tiempo de ejecución.
- Solución para evitar fallas durante la ejecución de ciertos métodos.
- Mejoras en la inclusión de paquetes desde la línea de comando.
- Soluciones específicas para plataformas como Android, Windows y Debian.
- Mejoras en la compatibilidad con diferentes versiones de Python y sistemas operativos.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
¿Como instalar Nuitka en Linux?
Para los interesados en poder instalar Nuitka en su sistema, deben saber que la instalación es sencilla, solo deben contar con Python instalado y el sistema de gestión de paquetes pip.
Para instar Nuitka basta con ejecutar el siguiente comando:
pip install nuitka
En cuanto al uso de este compilador, pueden consultar el manual de usuario en el siguiente enlace.