Creación de archivos ejecutables a partir de scripts de Python con py2exe

 

Introducción

La ejecución de scripts de Python requiere una gran cantidad de requisitos previos, como tener Python instalado, tener una gran cantidad de módulos instalados, usar la línea de comandos, etc. mientras se ejecuta una .exe archivo es muy sencillo.

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

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

La forma más popular de lograr esto es mediante el py2exe módulo. En este artículo, repasaremos rápidamente los conceptos básicos de py2exe y solucionar algunos problemas comunes. Para seguir adelante, no se necesitan conocimientos avanzados 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

Usar el py2exe módulo, necesitaremos instalarlo. Hagámoslo con pip:

$ pip install py2exe

Conversión de Python Script a .exe

Primero, escriba un programa que imprima texto en la consola:

import math
print("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 generar:

Hannibal ante Portas
24

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

Instalación y configuración

Hacer otro archivo llamado setup.py en la misma carpeta. Aquí mantendremos los detalles de configuración sobre cómo queremos compilar nuestro programa. Solo pondremos un par de líneas de código por ahora:

from distutils.core import setup # Need this to handle modules
import py2exe 
import math # We have to import all modules used in our program

setup(console=['example.py']) # Calls setup function to indicate that we're dealing with a single console application

Si estuviéramos tratando con una aplicación con una interfaz de usuario gráfica, reemplazaríamos console con windows al igual que:

setup(windows=['example.py'])

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

$ cd exampDir
$ python setup.py py2exe

running 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 debería ser example.exe. Para ejecutarlo desde la consola ejecuta:

$ example

¡Y será recibido por nuestra cita en latín, seguida del valor de 4 !:

Hannibal ante Portas
24

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

Si desea agrupar todos los archivos, agregue bundle_files y compressed, y establecer zipfile a nadie así:

from distutils.core import setup
import py2exe

setup(
    options = {'py2exe': {'bundle_files': 1, 'compressed': True}},
    console = [{'script': "example.py"}],
    zipfile = None,
)

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

Ahora, sus usuarios finales pueden ejecutar sus scripts sin ningún conocimiento ni prerrequisitos instalados en sus máquinas locales.

Solución de problemas

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

Cómo reparar los archivos DLL que faltan después de usar py2exe

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

DLL significa «biblioteca de vínculos dinámicos», y no están ahí solo para generar errores, lo prometo. Las DLL contienen código, datos y recursos que nuestro programa puede necesitar durante la ejecución.

Después de ejecutar el .exe, si recibe 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 comando dice:

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

La solución es encontrar lo que falta .dll y péguelo en su carpeta dist. Hay dos maneras de hacer esto.

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

¿Cómo generar ejecutables de 32/64 bits usando py2exe?

Para hacer 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 exclusivo de 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úrese de incluirlos en su proyecto.

 

Etiquetas:

1 pensamiento sobre “Creación de archivos ejecutables a partir de scripts de Python con py2exe”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *