Demo Github
Python se encuentra en el exclusivo grupo de los Lenguajes de Programación Multiplataforma, es decir nos permite crear aplicaciones para varios entornos y es que Python nos permite crear Software, Aplicaciones Webs, Librerías para Sistemas Operativos, APIs REST, etc. Pero antes de ir muy lejos, al menos para los que aún están comenzando con Python, es importante conocer cual es el proceso para crear un programa o software ejecutable y en este Post te enseñaré a Como Crear Nuestro Primer Programa o Software con Python, vamos con este Post.
Antes de continuar te invito a leer los siguiente artículos:
- Que es Python y otros Detalles
- 5 Buenas Prácticas de Machine Learning para Desarrolladores en Python
- Diferencia entre los métodos sort() y sorted() en Python
- 10 Razones por las Cuales deberías aprender Python en 2020 – Parte 1
- Puedes leer más Posts en la categoría Python
Asimismo te invito a escuchar el Podcast: “Dominio del trabajo con Varios Lenguajes de Programación”:
Spotify | SoundCloud |
Bien ahora continuemos con el Post: Como Crear Nuestro Primer Programa o Software con Python.
Para poder hacer ejecutable un programa o software, necesitamos crearlo, entonces en este punto ya debes de tener en mente que es lo que vas a crear, para este tutorial yo voy a crear un programa llamado Reloj que muestra la hora local.
Creación del Programa Reloj
Primero creo un archivo llamado reloj.py en un determinado directorio y en el archivo comienzo importando el módulo Tkinter
1 2 3 4 5 |
# Importamos el módulo Tkinter from tkinter import * from tkinter.ttk import * |
Paso seguido importo el método strftime para obtener la hora local del sistema
1 2 3 4 |
# importamos el método strftime que devuelve la hora local from time import strftime |
Creo una ventana con Tkinter para poder mostrar la hora, le doy un título a la ventana del programa y agrego le añado un ícono, he colocado la ruta completa del icono para que Python me cree el ejecutable junto con el ícono.
1 2 3 4 5 6 7 8 9 10 |
# Creamos una ventana con Tkinter root = Tk() # Título de la Ventana root.title('Reloj') # Icono del Programa (Colocamos la ruta completa) root.iconbitmap(r"D:/xampp/htdocs/xampp/nc/tutoriales/python_ejecutable/nc.ico") |
Voy a crear una función llamada hora(), tu le puedes poner el nombre que desees, en esta función mostraremos la hora en un label. He colocado comentarios en el código para explicar que hace cada línea.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Creamos la función hora() para mostrar la hora en un label def hora(): # Obtenemos la hora local datos = strftime('%I:%M:%S %p') # Pasamos la hora al label label.config(text = datos) # Hacemos un retardo de tiempo de 1 segundo, antes de ejecutar el reloj label.after(1000, hora) |
Le aplico fuente Arial, tamaño de fuente 60px, espaciado de 50px, color de fondo naranja y color blanco para el primer plano en donde se muestran los números del reloj.
1 2 3 4 5 6 7 8 9 10 11 |
# Estilizo mi reloj label = Label(root, font = ( 'Arial', 60 ), padding = '50', background = 'orange', foreground = 'black' ) |
Paso seguido, expando el reloj al centro de la ventana, llamo a la función hora() que creamos anteriormente y con el método mainloop() detenemos cualquier otra ejecución de código en el programa
1 2 3 4 5 6 7 8 9 10 |
# Expando el reloj en el centro de la ventana label.pack(expand = True) # Llamamos a la función hora() hora() # Con el método mainloop() le decimos a Python se detenga hasta aquí y no ejecute nada más mainloop() |
A continuación el código completo del archivo reloj.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# Importamos el módulo Tkinter from tkinter import * from tkinter.ttk import * # importamos el método strftime que devuelve la hora local from time import strftime # Creamos una ventana con Tkinter root = Tk() # Título de la Ventana root.title('Reloj') # Icono del Programa (Colocamos la ruta completa) root.iconbitmap(r"D:/xampp/htdocs/xampp/nc/tutoriales/python_ejecutable/nc.ico") # Creamos la función hora() para mostrar la hora en un label def hora(): # Obtenemos la hora local datos = strftime('%I:%M:%S %p') # Pasamos la hora al label label.config(text = datos) # Hacemos un retardo de tiempo de 1 segundo, antes de ejecutar el reloj label.after(1000, hora) # Estilizo mi reloj label = Label(root, font = ( 'Arial', 60 ), padding = '50', background = 'orange', foreground = 'black' ) # Expando el reloj en el centro de la ventana label.pack(expand = True) # Llamamos a la función hora() hora() # Con el método mainloop() le decimos a Python se detenga hasta aquí y no ejecute nada más mainloop() |
Yo he creado mi archivo reloj.py dentro de un directorio llamado python_ejecutable, este nombre se lo puse yo, tu le puedes poner el nombre que desees.
Dentro del directorio python_ejecutable he colocado un archivo llamado nc.ico el cual es el archivo del icono del programa y debe estar junto al archivo reloj.py para poder crear el archivo ejecutable del programa más adelante.
1 2 3 4 5 |
/python_ejecutable ├── reloj.py ├── nc.ico |
Creación del Ejecutable
Parte del desarrollo de software ágil es usar herramientas que nos ayuden a realizar una o varias tareas en nuestro proyecto, yo usaré el paquete pyinstaller, el cual me permite crear archivos ejecutables de un programa creado con Python, voy a instalar este paquete ejecutando el siguiente comando.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
pip install pyinstaller Collecting pyinstaller==3.3 Using cached https://files.pythonhosted.org/packages/cc/c2/5d9a7756419f47ef378add16c7c50c9d7794ae7a39b71b68b00bd7d3ae20/PyInstaller-3.3.tar.gz Requirement already satisfied: setuptools in c:\python27\lib\site-packages (from pyinstaller==3.3) (39.0.1) Requirement already satisfied: pefile>=2017.8.1 in c:\python27\lib\site-packages (from pyinstaller==3.3) (2019.4.18) Requirement already satisfied: macholib>=1.8 in c:\python27\lib\site-packages (from pyinstaller==3.3) (1.14) Requirement already satisfied: dis3 in c:\python27\lib\site-packages (from pyinstaller==3.3) (0.1.3) Requirement already satisfied: future in c:\python27\lib\site-packages (from pyinstaller==3.3) (0.18.2) Requirement already satisfied: altgraph>=0.15 in c:\python27\lib\site-packages (from macholib>=1.8->pyinstaller==3.3) (0.17) Installing collected packages: pyinstaller Running setup.py install for pyinstaller: started Running setup.py install for pyinstaller: finished with status 'done' Successfully installed pyinstaller-3.3 WARNING: You are using pip version 19.2.2, however version 20.2.3 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command. |
NOTA: Te recomiendo ejecutar tu consola de comandos con permisos de Administrador para evitar problemas a la hora de ejecutar los comandos.
Luego de instalar el paquete pyinstaller, voy a crear el archivo ejecutable de mi reloj mediante el siguiente comando (El comando lo debemos ejecutar en el mismo directorio en donde se encuentra el archivo reloj.py y el icono nc.ico para que puedan compilarse sin problemas).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
pyinstaller --onefile reloj.py 71 INFO: PyInstaller: 3.3 71 INFO: Python: 2.7.15 71 INFO: Platform: Windows-8.1-6.3.9600 72 INFO: wrote D:\xampp\htdocs\xampp\nc\tutoriales\python_ejecutable\reloj.spec 72 INFO: UPX is not available. 84 INFO: Extending PYTHONPATH with paths ... ... (Continua la creación del ejecutable) ... 59 INFO: checking Analysis 121 INFO: checking PYZ 138 INFO: checking PKG 165 INFO: Bootloader c:\python27\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe 165 INFO: checking EXE |
En el comando anterior he colocado el nombre del archivo de mi programa, es decir pyinstaller –onefile reloj.py para decirle a Python que cree un ejecutable del archivo reloj.py
Ahora se me han creado otros directorios y archivos tras ejecutar el comando anterior y dentro del directorio dist se ha creado un archivo llamado reloj.exe el cual es el archivo ejecutable de mi programa.
1 2 3 4 5 6 7 8 9 |
/python_ejecutable ├──/build ├──/dist ├── reloj.exe // Abro este Archivo ejecutable del Programa ├── reloj.py ├── nc.ico ├── reloj.spec |
Si abro el archivo reloj.exe puedo ver mi programa ejecutándose sin problemas.
Y bueno eso es todo, al inicio del Post he colocado una Demo y un enlace a un repositorio GitHub en donde he colocado todos los archivos del proyecto.
Conclusión
En este Tutorial hemos aprendido a Como Crear Nuestro Primer Programa o Software con Python y luego lo hemos compilado para convertirlo en un archivo ejecutables, este tutorial es una base para que puedas crear archivos ejecutables de proyectos más complejos.
Nota (s)
- El código y comandos compartidos en este tutorial pueden quedar obsoletos o quedar vigentes, esto no depende de mi, si no de los desarrolladores que dan soporte a Python y al paquete Pyinstaller.
- No olvides que debemos utilizar la tecnología para hacer cosas buenas por el mundo.
Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.