Ejecutable con Auto-Py-to-Exe¶
Volviendo a la organización que os enseñé hace alguna unidades:
Game/
requirements.txt # dependencias
game/
main.py # principal
Vamos a crear un entorno virtual con Pipenv en la raíz del proyecto.
Para ello necesitamos instalar Pipenv si no lo tenemos:
pip install pipenv
Ahora configuramos el requirements.txt
con los paquetes mínimos necarios:
pygame==2.1.2
pygame_gui==0.6.4
Y creamos en Game\
el entorno virtual a partir del requirements:
cd Game
pipenv install -r requirements.txt
Esto creará en la raíz un Pipfile
y un Pipfile.lock
.
A continuación instalamos en ese entorno virtual auto-py-to-exe
para generar el ejecutable:
cd Game
pipenv install auto-py-to-exe
Y ejecutamos el programa en este entorno con los paquetes mínimos:
cd Game
pipenv run auto-py-to-exe
En la pantalla web del programa seleccionaremos:
- Script Location será el
main.py
del videojuego. - One Directory (OneFile podría no funcionar o requerir directorios).
- Console Window Based.
- Additional Files añadiremos el directorio
res
de recursos externos. - Icon si tenemos una imagen ico para el ejecutable.
Antes de continuar observemos un instante que en la parte inferior nos aparece el comando:
pyinstaller --noconfirm --onedir --windowed --add-data
"C:/Users/hcost/Projects/curso_pygame/08_Distro/Game/game/res;res/"
"C:/Users/hcost/Projects/curso_pygame/08_Distro/Game/game/main.py"
Esto se muestra porque en realidad se utiliza este programa llamado pyinstaller para generar los ejecutables, y ese es el comando para generarlos.
Le damos a convert .py
to .exe
, en otras plataformas creará el ejecutable pertinente sin la extensión exe.
El ejecutable se generará en el directorio Output dentro de una carpeta llamada main y podremos ejecutar con el ejecutable main.exe
de su interior, que si todo es correcto debería lanzar el videojuego.
El tamaño puede ser algo grande para lo que aparentemente es el juego, eso es porque el ejecutable incluye el intérprete de Python y las dependencias como PyGame GUI.
Concretamente dentro de pygame_gui/data
encontraremos un montón de fuentes que, dado que no estamos utilizando, podemos borrar.
Al hacerlo el tamaño del directorio pasará de 47MB a 21MB, que comprimidos en un ZIP o 7ZIP baja a 11MB u 8MB respectivamente.
Última edición: 13 de Febrero de 2022