Crear archivos ejecutables a partir de Scripts Python con py2exe

Introducción

Ejecutar scripts Python requiere muchos requisitos previos, como tener instalado Python, tener una gran cantidad de módulos instalados, usar la línea de comandos, etc. mientras que ejecutar un archivo .exe es muy sencillo.

Si desea crear una aplicación simple y distribuirla a muchos usuarios, escribirla como un script corto de Python no es difícil, pero asume que los usuarios saben cómo ejecutar el script y ya tienen Python instalado en su máquina.

Ejemplos como este muestran que hay una razón válida para convertir programas .py en programas equivalentes .exe en Windows. .exe significa «Archivo ejecutable», que también se conoce como Binario.

La forma más popular de lograrlo es utilizando el módulo py2exe. En este artículo, repasaremos rápidamente los conceptos básicos de py2exe y solucionaremos algunos problemas comunes. Para seguir adelante, no se necesita ningún conocimiento avanzado de Python, sin embargo, tendrá que usar Windows.

Convertir un código de lenguaje interpretado en un archivo ejecutable es una práctica comúnmente llamada congelación.

Instalación de py2exe

Para utilizar el módulo py2exe, tendremos que instalarlo. Vamos a hacerlo con pip:

$ pip install py2exe

Conversión de Script Python a .exe

En primer lugar, vamos a escribir un programa que va a imprimir algo de texto en la consola:

import mathprint("Hannibal ante Portas")print(factorial(4))

Ejecutemos los siguientes comandos en la línea de comandos de Windows para crear un directorio (exampDir), mover el código que ya escribimos a dicho directorio y, finalmente, ejecutarlo:

$ mkdir exampDir$ move example.py exampDir$ cd exampDir$ py example.py

Esto debería producir:

Hannibal ante Portas24

Siempre pruebe los scripts antes de convertirlos en ejecutables para asegurarse de que si hay un error, no es causado por el código fuente.

Configuración y configuración

Cree otro archivo llamado setup.py en la misma carpeta. Aquí guardaremos los detalles de configuración de cómo queremos compilar nuestro programa. Vamos a poner un par de líneas de código por ahora:

from distutils.core import setup # Need this to handle modulesimport py2exe import math # We have to import all modules used in our programsetup(console=) # Calls setup function to indicate that we're dealing with a single console application

Si se tratase de una aplicación con una interfaz gráfica de usuario, le reemplace console con windows como:

setup(windows=)

Ahora abra el símbolo del sistema como administrador y navegue hasta el directorio que acabamos de mencionar y ejecute el archivo setup.py :

$ cd exampDir$ python setup.py py2exerunning py2exe*** searching for required modules ****** parsing results ***...

carpeta dist

Si todo se hace correctamente, esto debería producir un subdirectorio llamado dist. Dentro de él, habrá algunos archivos diferentes dependiendo de su programa, y uno de ellos debe ser example.exe. Para ejecutarlo desde la consola, ejecute:

$ example

Y será recibido por nuestra cita latina, seguida por el valor de 4!:

Hannibal ante Portas24

O bien, puede hacer doble clic en él y se ejecutará en la consola.

Si desea agrupar todos los archivos, agregue bundle_files y compressed, y establezca zipfile como Ninguno:

from distutils.core import setupimport py2exesetup( options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, console = , zipfile = None,)

Y vuelva a ejecutar los comandos para generar el .archivo exe.

Ahora, los usuarios finales pueden ejecutar los scripts sin ningún conocimiento o requisito previo instalado en sus máquinas locales.

Solución de problemas

Los errores al convertir archivos .py en archivos .exe son comunes, por lo que enumeraremos algunos errores y soluciones comunes.

Cómo solucionar DLL-s Faltantes Después de Usar py2exe

Falta un problema común con py2exe .dll – s.

DLL significa «biblioteca de enlaces dinámicos», y no están ahí solo para crear errores, prometedores. Las DLL contienen código, datos y recursos que nuestro programa podría necesitar durante la ejecución.

Después de ejecutar .exe, si obtiene un error del sistema que dice algo como:

The program can't start because something.dll is missing from your computer. Try reinstalling the program to fix this problem. 

O la línea de comandos dice:

ImportError: (DLL load failed: The specified module could not be found.)

La solución es encontrar el .dll que falta y pasarlo a su carpeta dist. Hay dos maneras de hacer esto.

  1. Busque el archivo en su computadora y luego cópielo. Esto funcionará la mayor parte del tiempo.
  2. Encuentra el .dll que falta en línea y descárgalo. Trate de no descargarlo de algún sitio web sospechoso.

¿Cómo generar Ejecutables de 32/64 bits Usando py2exe?

Para crear un ejecutable de 64 bits, instale Python de 64 bits en su dispositivo. Lo mismo ocurre con la versión de 32 bits.

Cómo usar py2exe en Linux o Mac

py2exe no es compatible con Linux o Mac, ya que está destinado a crear .archivos exe, que es un formato único para Windows. Puede descargar una máquina virtual de Windows tanto en Mac como en Linux, usar Wine o usar una herramienta diferente, como Pyinstaller en Linux o py2app en Mac.

Conclusión

Para que los proyectos de Python sean más fáciles de ejecutar en dispositivos Windows, necesitamos generar un archivo ejecutable. Podemos usar muchas herramientas diferentes, como Pyinstaller, auto-py-to-exe, cx_Freeze y py2exe.

Los archivos binarios pueden usar DLL-s, así que asegúrate de incluirlos en tu proyecto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

More: