Este es un manual paso a paso para transformar cualquier programa de Python en un programa independiente, para poderlo ejecutar fuera del IDE.
Básicamente el proceso consta de 2 grandes pasos:
1. Convertir las fuentes de tipo Sting a objetos Bytes
2. Utilizar pyinstaller
Vamos por partes:
1. Convertir las fuentes de tipo Sting a objetos Bytes
1. Descarga la o las fuentes empleadas en el juego, en este caso FreeSansBold.ttf (https://www.download-free-fonts.com/details/2045/free-sans-bold). Luego guárdala en la carpeta donde se encuentra Invasión_Espacial.py como se muestra en la imagen siguiente:
![](../img/dia10_04.png)
2. Crea una función que transforme el nombre de la fuente (“FreeSansBold.ttf”) de string a objeto Bytes. Para eso importamos la librería io, y pasamos como parámetro el nombre de la fuente al almacenar la función en una variable.
![](../img/dia10_05.png)
3. Almacena la función en una variable que luego se pasará como objeto Bytes a pygame.font.Font.
![](../img/dia10_06.png)
2. Utilizar pyinstaller
1. Instala pyinstaller usando:
pip installer pyinstaller
2. Abre CMD en la carpeta donde se encuentra el archivo Invasión_Espacial.py
-`--clean`: elimina todos los archivos temporales y directorios creados por pyinstaller durante la construcción del archivo ejecutable.
-`--onefile`: crea un archivo ejecutable que contiene todos los archivos necesarios para ejecutar el script, incluyendo los módulos y bibliotecas utilizadas por el script.
-`--windowed`: crea un archivo ejecutable que se ejecuta en una ventana en lugar de en pantalla completa.
-`Invasión_Espacial.py`: es el nombre del script Python que se va a convertir en un archivo ejecutable.
4. Luego de unos segundos se terminará de correr el comando y la consola mostrará el siguiente mensaje:
![](../img/dia10_08.png)
Se van a generar dos carpetas, una llamada built y otra llamada dist. En esta última se deberán copiar todos los archivos que son referencias para que el juego funcione:
![](../img/dia10_09.png)
¡Y eso es todo! ¡Espero que te sea de gran ayuda para que peudas compartir tus programas con el mundo!