Introducción
En este tutorial, exploraremos la conversión de scripts de Python a archivos ejecutables de Windows en cuatro simples pasos. Aunque hay muchas maneras de hacerlo, cubriremos, según la opinión popular, la más sencilla hasta el momento.
Este tutorial ha sido diseñado después de revisar muchos errores comunes que la gente enfrenta al realizar esta tarea, y por lo tanto contiene información detallada para instalar y configurar todas las dependencias también. Siéntase libre de saltarse cualquier paso, si ya tiene esas dependencias instaladas. Sin más preámbulos, vamos a empezar.
Paso 1: Instalar cURL
cURL proporciona una biblioteca y una herramienta de línea de comandos para la transferencia de datos utilizando varios protocolos. Lo necesitamos para descargar el gestor de paquetes pip en el siguiente paso. Muchos de vosotros ya lo tendréis configurado, lo que podéis comprobar ejecutando el siguiente comando:
$ curl --version
Si el comando anterior devuelve una versión de curl, podéis saltaros las siguientes instrucciones de este paso. En cuanto al resto, puedes instalar curl siguiendo estos tres pasos:
Sin embargo, esto significa que sólo puedes usar el comando curl en esa carpeta en particular. Para poder utilizar el comando curl desde cualquier lugar de tu máquina, haz clic con el botón derecho del ratón en curl.exe, haz clic en «Propiedades» y copia el valor de «Ubicación». A continuación, haga clic con el botón derecho del ratón en «Mi PC» y haga clic en «Propiedades». En el panel de opciones de la izquierda, seleccione la opción «Configuración avanzada del sistema». Se ha resaltado en la captura de pantalla de abajo.
En la ventana que aparece, haga clic en «Variables de entorno» cerca de la parte inferior derecha. Se ha resaltado en la captura de pantalla de abajo.
En la siguiente ventana, busque y haga doble clic en la variable de usuario llamada «Ruta», y luego haga clic en «Nuevo». Se creará un nuevo cuadro de texto en esa ventana; pegue el valor de «Ubicación» del archivo «curl.exe» que copió anteriormente, y luego haga clic en ‘Aceptar’.
CURL debería ser ahora accesible desde cualquier lugar de su sistema. Confirma tu instalación ejecutando el siguiente comando:
$ curl --version
Vamos al siguiente paso.
Paso 2: Instalar pip
En este paso, instalaremos pip, que es básicamente un gestor de paquetes para los paquetes de Python. Lo necesitamos en el siguiente paso para instalar la librería pyinstaller. La mayoría de vosotros ya lo tendréis instalado, para comprobarlo ejecutad el siguiente comando:
$ pip --version
Si el comando anterior devolvía una versión de pip, podéis saltaros las siguientes instrucciones de este paso.
En cuanto al resto, puedes instalar pip ejecutando los siguientes dos comandos en el símbolo del sistema:
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py
Eso es todo. ¡Pip ha sido instalado en su máquina local! Puedes ejecutar el siguiente comando para confirmarlo:
$ pip --version
Antes de pasar al siguiente paso, debes repetir lo que hicimos con curl.exe para que puedas acceder al comando pip desde cualquier parte de tu máquina, pero esta vez lo haremos para «pip.exe».
Pulsa la tecla de Windows y busca «pip.exe», luego haz clic con el botón derecho del ratón en el primer resultado de la búsqueda y haz clic en «Abrir ubicación del archivo», te llevará a la carpeta en la que se encuentra ese archivo. Haga clic con el botón derecho en el archivo «pip.exe» y seleccione «Propiedades». Después, copia el valor de «Location» y pégalo en la variable Path tal y como hicimos en el Paso 1.
Paso 3: Instalar PyInstaller
En este paso, instalaremos pyinstaller usando pip. Necesitamos pyinstaller para convertir nuestros scripts de Python en archivos ejecutables (.exe). Sólo tienes que copiar y pegar el comando de abajo en tu símbolo del sistema y ejecutarlo:
$ pip install pyinstaller
De nuevo, para confirmar tu instalación, ejecuta el siguiente comando:
$ pyinstaller --version
Nota: Si tienes Anaconda instalado en tu sistema, entonces probablemente estés usando el gestor de paquetes conda
en su lugar. En ese caso, ejecuta los siguientes comandos, en secuencia:
$ conda install -c conda-forge pyinstaller$ conda install -c anaconda pywin32
Este paso marca el final de todas las instalaciones. En el siguiente paso, convertiremos nuestros archivos de Python en un ejecutable con un solo comando.
Paso 4: Convertir archivos de Python en ejecutables
Este es el último paso. Usaremos pyinstaller para convertir nuestros archivos .py
en .exe
con un solo comando. Así que, ¡hagámoslo!
Abre el símbolo del sistema y navega hasta el directorio en el que se encuentra tu archivo/script de Python. Alternativamente, puedes abrir ese directorio usando el Explorador de Archivos, hacer clic con el botón derecho + shift y luego seleccionar «Abrir símbolo del sistema en esta carpeta». Antes de convertir tu archivo, deberías comprobar que tu archivo funciona como se espera. Para ello, he escrito un script básico en Python que imprime el número 10 cuando se ejecuta.
Ejecutamos el script y vemos si funciona bien antes de convertirlo en un archivo ejecutable. Ejecuta el siguiente comando en tu símbolo del sistema:
$ python name_of_your_file.py
En mi caso, el nombre del archivo era ‘sum.py’.
Para crear un archivo ejecutable independiente en el mismo directorio que tu archivo Python, ejecuta el siguiente comando:
$ pyinstaller --onefile <file_name>.py
Esta instrucción puede tardar un poco en completarse. Una vez completada, generará tres carpetas. Puede encontrar el archivo ejecutable en la carpeta «dist». ¡Tenga en cuenta que el argumento «onefile» le dice a pyinstaller que cree un solo archivo ejecutable.
Ahora vamos a ejecutar nuestro archivo ejecutable para ver si el procedimiento funcionó!
¡Ta-da! Funcionó tal y como se esperaba.
Un pequeño consejo, si tu archivo ejecutable se cierra demasiado rápido para que notes la salida, puedes añadir una línea input()
al final de tu archivo Python, que mantenga el prompt abierto mientras esperas a usar la entrada. Así es como pude tomar una captura de pantalla de mi salida también.
También ten en cuenta que si tu ejecutable depende de cualquier otro archivo ejecutable, como phantomjs
, necesitas mantenerlos en el mismo directorio que el de tu archivo Python para que pyinstaller pueda incluirlo en el ejecutable.
Conclusión
En este tutorial, hemos discutido en detalle la conversión de scripts de Python a archivos ejecutables utilizando la biblioteca pyinstaller de Python en cuatro pasos. Comenzamos instalando cURL, seguido de pip y pyinstaller. Por último, convertimos un archivo Python de ejemplo a ejecutable para asegurarnos de que el procedimiento funciona en Windows.