Saltar a contenido

Ejecutar programas

Supongamos que un amigo nos pide que le escribamos un programa. Una vez completada la tarea, le pasamos el archivo de texto con las instrucciones.

Para poder ejecutarlo, tiene que instalar Python en su computadora. Pero... ¿como poner en marcha el programa sin abrir el editor IDLE? Nuestro amigo no necesita revisar las instrucciones (aunque puede hacerlo, si es su deseo). Lo que necesita es ir a la carpeta donde está el archivo y ejecutarlo haciendo doble clic.

Cada sistema operativo funciona de forma diferente. Veamos como hacerlo.

Windows

Para ejecutar un programa haciendo doble clic con el ratón sobre el archivo de texto, necesitamos que el ordenador sepa que se trata de un programa Python. De todas formas, el nombre del programa ya le está orientando, gracias al sufijo .py :

mi_programa.py

Conviene que la primera línea del texto sea un comentario especial indicando la versión del intérprete:

Primero.py
1
2
3
4
5
6
#! python3

print( 15 + 3 )
print( 15 - 3 )
print( 15 * 3 )
print( 15 / 3 )

A esta línea se le llama shebang, y los dos primeros caracteres del archivo han de ser:

  • un carácter #
  • un símbolo !

Mac

En los ordenadores Mac y Linux, la línea shebang suele ser algo así como:

#!/usr/bin/env python3

Para ejecutar el programa en un Mac, pulsar sobre el archivo con el botón secundario del ratón, y en el menú desplegable, seleccionar "Abrir con ... " seguido de "Python Launcher".

Python Launcher es un programa que forma parte del paquete de herramientas Python para Mac, y que sirve para ejecutar programas Python sin necesidad de abrir el editor IDLE.

¿Como configurar Python Launcher para que se use siempre por defecto al hacer doble clic sobre el programa? Hacer lo siguiente:

  • pulsar sobre el archivo .py con el botón secundario del ratón. En el menú desplegable, seleccionar "obtener información".

  • en la ventana de información del archivo, pulsar en "Abrir con" y seleccionar Python Launcher.

Linux

Como ya hemos indicado, la línea shebang es:

#!/usr/bin/env python3

Además, tenemos que asignar permisos de ejecución a nuestro fichero. Para ello:

  • abrir un terminal de comandos del sistema operativo
  • asignar el permiso con el comando:

    chmod +x /carpeta1/carpeta2/miprograma.py
    

    siendo:

    • chmod es el comando para cambiar permisos
    • +x indica que queremos activar el permiso exec
    • /carpeta1/carpeta2/ es la ruta de carpetas. Cambiarlo por la que proceda
    • miprograma.py es el nombre del archivo. Sustituirlo por el nombre del nuestro.

Ocultar información de ejecución

Cuando iniciamos un programa, haciendo doble clic sobre el mismo, en la ventana que se muestra aparece un mensaje de lo que se está ejecutando. Por ejemplo, el programa:

Primero.py
1
2
3
4
print( 15 + 3 )
print( 15 - 3 )
print( 15 * 3 )
print( 15 / 3 )

Mostraría en un Mac algo así como:

Last login: Fri Jun 20 10:28:30 on ttys002
cd '/Users/usuario/Programas/' && '/usr/local/bin/python3' 
'/Users/usuario/Programas/Primero.py'  
&& echo Exit status: $? && exit 1

18
12
45
5.0

¿Como suprimir estos mensajes tan molestos? No es posible, a menos que logremos cambiar la configuración de la computadora. Pero podemos solucionarlo añadiendo al programa alguna instrucción que diga "borrar pantalla". En Windows son dos instrucciones:

import os
os.system("cls")

No hace falta que entendamos lo que significa. Ya lo veremos más adelante. Por ahora, basta con copiar y pegarlas al inicio de nuestro programa:

Primero.py
1
2
3
4
5
6
7
import os
os.system("cls")

print( 15 + 3 )
print( 15 - 3 )
print( 15 * 3 )
print( 15 / 3 )

En un ordenador Mac o Linux, hay que escribir "clear" en lugar de "cls".

En Windows, cls significa "clear screen"

Evitar que la ventana se cierre

En algunos sistemas operativos, cuando finaliza la ejecución del programa, la ventana se cierra automáticamente impidiendo ver los resultados. De hecho, en un programa sencillo, la ejecución será tan rápida que la ventana se abrirá y cerrará en una fracción de segundo.

Podemos bloquear el cierre de la ventana añadiendo la sentencia:

input()

lo que hace que se quede a la espera de que el usuario pulse Enter.

El programa completo queda así:

Primero.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#! python3

import os
os.system("cls")  

print( 15 + 3 )
print( 15 - 3 )
print( 15 * 3 )
print( 15 / 3 )

input()

En sistemas Mac/Linux cambiarían dos líneas:

Primero.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/env python3

import os
os.system("clear")  

print( 15 + 3 )
print( 15 - 3 )
print( 15 * 3 )
print( 15 / 3 )

input()