estaremos hablando de CPython.
Modos de ejecución del código Python
Como ya hemos dicho, la teoría que estudiaremos en este libro está actualizada para Python 3.4, por lo que se aconseja probar los ejemplos del libro utilizando esta versión.
En cualquier caso, debemos tener en cuenta que el código que funciona con la versión 3.x funciona también con cualquier versión 3.y, siendo y mayor que x.
El intérprete Python en los sistemas Unix-like se encuentra habitualmente en /usr/bin/ python o /usr/local/bin/python:
mientras que en las máquinas Windows normalmente se encuentra en C:\Python.
NOTA
En todo este libro utilizaremos muchas veces comandos Unix y los acompañaremos de notas para explicar su significado. Además, todo el Apéndice A está dedicado a los comandos Unix utilizados en el libro. Acabamos de ver el comando which. Este toma como argumento el nombre de un archivo ejecutable que se encuentra en la ruta de búsqueda y devuelve la ruta completa. En otras palabras, nos dice dónde se encuentra el programa:
Podemos arrancar el intérprete mediante el comando python del terminal:
El intérprete puede arrancar con distintas opciones, que podemos consultar ejecutando Python con la opción -h:
Como podremos ver, el intérprete se comporta igual que una shell Unix: cuando es llamado con la entrada estándar conectado a un terminal, lee y ejecuta los comandos de manera interactiva, y cuando es llamado pasando el nombre de un archivo como argumento, o se redirecciona la entrada estándar de un archivo, lee y ejecuta los comandos incluidos en el archivo. Además, cuando se utiliza la opción -c, ejecuta las instrucciones que se le han pasado en forma de cadena. Veamos en detalle estos tres modos de ejecución.
Modo interactivo
Cuando los comandos se leen desde un terminal, se dice que el intérprete se ejecuta en modo interactivo. Para utilizar este modo se ejecuta python desde la línea de comandos sin argumentos:
El intérprete muestra un mensaje de bienvenida, que empieza con el número de la versión de Python que se está ejecutando, seguido del prompt principal, normalmente marcado con tres signos mayor que. Cuando una instrucción o un bloque de instrucciones ocupa más de una línea, se muestra el prompt secundario, marcado con tres puntos:
Desde el prompt principal y desde el secundario, es posible cancelar la entrada y volver al prompt principal tecleando el carácter de interrupción, normalmente Control-C o DEL:
Podemos salir del modo interactivo (con el estado de salida 0) mediante el comando quit() en el prompt principal, o bien tecleando un carácter de EOF (Control-D en los sistemas Unix-like, Control-Z en Windows).
Como el modo interactivo es muy útil tanto para probar el código rápidamente como para efectuar introspecciones de objetos, es preferible utilizar un entorno más cómodo que el simple modo interactivo integrado. Existen distintas opciones, entre las cuales destacan IPython, bpython, DreamPie o el entorno de desarrollo IDLE (Integrated Development Environment), incluido en las distribuciones Python estándar. Estas soportan funciones avanzadas, como la implementación del tabulador con introspección de objetos, la coloración de la sintaxis, la ejecución de los comandos de shell y el historial de comandos.
NOTA
En los sistemas Unix-like, la librería GNU readline permite tener el historial y la implementación del tabulador también en el modo interactivo integrado.
Para la implementación del tabulador, debemos importar los módulos rlcompleter y readline y llamar a readline.parse_and_bind('tab: complete'):
Aquí (con un doble TAB) tenemos la implementación del tabulador:
Indudablemente, ejecutar estas tres instrucciones cada vez que se trabaja con el modo interactivo es un fastidio. Por ello, es conveniente automatizar el procedimiento creando un archivo con las tres instrucciones y asignándolo a la variable de entorno PYTHONSTARTUP. De esta manera, siempre que trabajemos con el modo interactivo, Python ejecutará en primer lugar las instrucciones contenidas en el archivo. Veamos cómo realizar lo que acabamos de describir en un sistema Unix-like con shell bash. Creamos en nuestra home un archivo de inicio, llamado, por ejemplo, .pyrc, con las tres instrucciones Python:
Añadimos la siguiente línea en el archivo .bashrc de la home (si este archivo no existe, lo creamos):
Hecho. Ahora solo tenemos que abrir un terminal (o escribir el comando source ~/.pyrc en el terminal que ya está abierto) y arrancar el intérprete interactivo.
Los archivos que contienen código Python se denominan módulos Python. Hablaremos de los módulos en la sección Los módulos como contenedores de instrucciones de este capítulo, y de forma más profunda en una sección del Capítulo 4. Como veremos, los módulos realizan distintas tareas. Por ejemplo, un módulo puede ser utilizado como contenedor lógico en el cual se definen clases y funciones, o bien como script, para ser ejecutado con el fin de obtener un resultado o de realizar ciertas acciones.
Un programa Python está compuesto por uno o más módulos, y por tanto su arquitectura puede ubicar desde un simple script hasta un complejo programa estructurado en cientos de módulos. Los módulos Python tienen normalmente el sufijo .py, y tanto en Windows como en los sistemas Unix-like pueden ejecutarse con el prompt de los comandos, pasando el nombre del archivo como argumento. Por ejemplo, el archivo myfile.py:
puede ser ejecutado desde un terminal Unix, como se muestra a continuación:
NOTA
El comando cat de los sistemas Unix muestra el contenido de uno o más archivos de texto (o de la entrada estándar) sobre un terminal textual y produce sobre la salida estándar la concatenación de su contenido.
Puesto que en Windows los archivos .py se asocian directamente al ejecutable python.exe, es posible ejecutarlos simplemente mediante un doble clic sobre ellos. En cambio, en los sistemas Unix-like, como en los script de shell, los módulos pueden ser directamente ejecutados escribiendo el shebang en la primera línea del archivo:
y convirtiéndolos después en ejecutables: