Crear ejecutables en Python

Bien. Ya sabemos crear programas (scripts) en Python. Pero para ejecutarlos, tengo que invocarlos desde línea de comandos o desde un entorno como IDLE.
¿Cómo puedo hacer que funciones como un programa normal? Deseo que al hacer doble click sobre mi archivo éste se ejecute. ¿Cómo conseguirlo?
La respuesta depende del sistema operativo elegido. Veamos los tres más importantes:

Linux

Todos los sabores de Linux funcionan, a nuestros efectos, de la misma forma. Desde Debian hasta Ubuntu.
  • Lo primero que tenemos que hacer es indicar al sistema que nuestro archivo es un archivo ejecutable. Para eso, podemos hacer click con el botón derecho del ratón, seleccionar el apartado de permisos y marcar que el archivo sea ejecutable. Si lo preferimos, puede hacerse desde la terminal entrando en el mismo directorio que nuestro archivo y escribiendo
  • chmod a+x nombre_de_archivo
(consulta un manual del uso de la terminal)
  • En segundo lugar, hay que decirle al propio archivo como debe organizarse para poder ser ejecutado. Esto se consigue escribiendo como primera línea de código del programa lo siguiente:
  • #!/usr/bin/env python
(lo que indica al sistema operativo que debe invocar el intérprete de Python para ejecutar el resto del archivo). Una vez hecho esto, incluso podemos prescindir de la extensión .py. Ahora, si haces doble click, el sistema de preguntará si quieres ejecutarlo...
  • Dependiendo de la naturaleza del programa, necesitarás hacer un pequeño retoque. No hay problema si genera sus propias ventanas, pero si ha de ejecutase en la terminal, cuando termina su ejecución, la ventana de la terminal que se ha abierto se cierra de inmediato. La solución es simple. Añade en el punto en el que tu programa finalice
  • raw_input("Pulsa 'intro' para terminar")
y de este modo, la ventana sólo se cerrará cuando el usuario pulse la tecla 'intro'.

Mac OS X

En Mac OS X es algo más simple. Haciendo click con el botón derecho del ratón (o control+click) sacamos el menú contextual y elegimos 'Abrir con' y seleccionamos 'Python Launcher'. Y ya está todo. Por defecto, cuando ejecutemos el script se nos abrirá con ello una ventana de la terminal. Tendremos que, por lo tanto, tomar la misma precaución que en Linux y añadir un raw_input.

Windows

En general, el comportamiento es similar al de Mac OS X. De hecho, según cuál haya sido la instalación de Python, un doble click ya nos ejecuta el programa por defecto. Sin embargo, en WIndows hay una diferencia importatnte y es que el propio sistema no lleva de fábrica Python preinstalado...
Lo anterior quiere decir que si le pasamos nuestro programa o script de Python a un usuario de Windows tal cual, es muy posible que no pueda ejecutarlo. Esto no ocurre en Linux o en Mac OS X, pues el propio sistema ya viene con Python incorporado. ¿Cómo solucionar esto con Windows, si necesidad de tener que pedirle a nuestro usuario que se instale por sí mismo, también, Python?
La solución está en el programa, libre y gratuito, py2exe (si haces click en él, el enlace te llevará a su página oficial). SI te lo descargas y sigues las instrucciones del tutorial, podrás pasar a tus usuarios tu programa como un ejecutable de Windows normal.