En Unix, el intérprete de Python se suele instalar como /usr/local/bin/python en aquellas máquinas donde esté disponible. En Windows, se instala en el directorio Archivos de programa. Poner este directorio en el path hace posible arrancarlo tecleando en el intérprete de órdenes la orden:
python
Como la elección del directorio donde reside el intérprete es una opción de instalación, es posible que se halle en otros lugares. Consulta con tu guru de Python local o tu administrador de sistemas (por ejemplo, /usr/local/python es una alternativa frecuente).
Teclear un carácter EOF o fin de fichero (Control-D en Unix, Control-Z en DOS o Windows) en el intérprete causa la salida del intérprete con un estado cero. Si eso no funciona, se puede salir del intérprete tecleando las siguientes órdenes: "import sys; sys.exit()".
Las opciones de edición de la línea de órdenes no son muy destacables.
En Unix, es posible que quien instalara el intérprete en tu sistema
incluyera soporte
para la biblioteca de GNU `readline', que permite edición de línea más
elaborada y recuperación de órdenes anteriores. El modo más rápido
de ver sin hay soporte de edición de líneas es teclear Control-P en
cuanto aparece el intérprete. Si pita, la edición de líneas está
disponible (en el Apéndice P
,
no está disponible la edición de líneas y sólo se puede utilizar la
tecla de borrado para borrar el último carácter tecleado.
El intérprete funciona como el intérprete de órdenes de Unix: cuando se le llama con la entrada estándar conectada a un dispositivo tty, lee y ejecuta las órdenes interactivamente; cuando se le da un nombre de fichero como argumento o se le da un fichero como entrada estándar, lee y ejecuta un guion desde ese fichero.
Un tercer modo de arrancar el intérprete es "python -c orden [argumento] ...", que ejecuta las sentencias de orden, de forma análoga a la opción -c de la línea de órdenes. Como las sentencias de Python suelen contener espacios u otros caracteres que la línea de órdenes considera especiales, lo mejor es encerrar orden entre dobles comillas por completo.
Observa que hay una diferencia entre "python fichero" y
"python <fichero". En el caso de la redirección,
las solicitudes de entrada del programa, tales como llamadas
a input()
y raw_input()
, se satisfacen desde fichero.
Como este fichero ya se ha leído hasta el final antes de empezar la
ejecución del programa, el programa se encuentra un EOF (fin de fichero)
inmediatamente.
En el caso del nombre de fichero como argumento, las solicitudes de entrada
son satisfechas desde lo que esté conectado a la entrada estándar (esto
suele ser lo deseado).
Cuando se utiliza un fichero de guion, a veces es útil ejecutar el guion y entrar en modo interactivo inmediatamente después. Esto se consigue pasando -i como argumento, antes del nombre del guion (esto no funciona si el guion se lee desde la entrada estándar, por la misma razón indicada en el párrafo anterior).
El intérprete pasa el nombre del guion y los argumentos,
si los conoce, mediante la variable
sys.argv
, que es una lista de cadenas. Su longitud es al menos
uno (cuando no hay guion y no hay argumentos, sys.argv[0]
es
una cadena vacía). Cuando el guion es '-'
(es decir, la entrada
estándar), sys.argv[0]
vale '-'
. Cuando se
utiliza -c orden, sys.argv[0]
vale '-c'
. Las opciones
tras -c orden no las utiliza el intérprete Python, sino que
quedan en sys.argv
para uso de la orden.
Cuando se leen órdenes desde una tty, se dice que el intérprete está en modo interactivo. En este modo, espera a la siguiente orden con el indicador principal, que suele se tres signos `mayor' (">>>" ). Para las líneas adicionales, se utiliza el indicador secundario, por omisión tres puntos ("... ").
El intérprete muestra un mensaje de bienvenida con su número de versión e información de derechos de copia, antes de mostrar el primer indicador, por ejemplo:
python Python 1.5.2b2 (#1, Feb 28 1999, 00:02:06) [GCC 2.8.1] on sunos5 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>>
Las líneas de continuación son necesarias al introducir construcciones milti-línea. Por ejemplo, echa un visatazo a esta sentencia if:
>>> la_tierra_es_plana = 1 >>> if la_tierra_es_plana: ... print "¡Cuidado, que te caes!" ... ¡Cuidado, que te caes!
Cuando ocurre un error, el intérprete muestra un mensaje de error
y una traza de la pila. En el modo interactivo, después vuelve al
indicador principal. Si la entrada venía de un fichero, sale con
un resultado distinto de cero tras mostrar la traza de la pila (las
excepciones gestionadas con una sentencia except
en una
construcción try
no son errores en este contexto).
Existen errores no capturables que hacen que se cierre el intérprete
con un
resultado distinto de cero. Por ejemplo, esto ocurre con las inconsistencias internas
y, en algunos casos, al quedarse sin memoria. Todos los mensajes de error se
escriben en la salida de error estándar (la pantalla, si no se redirige a
un fichero u otra cosa).
La salida del programa se escribe en la salida estándar (que también es la pantalla, salvo en el caso mencionado antes).
Si se teclea el carácter de interrupción (suele ser Control-C o DEL) en
el indicador principal o secundario se cancela la entrada y se hace volver el
indicador primario2.1.
Si se intenta interrumpir mientras se ejecuta una orden, se activa la
excepción
KeyboardInterrupt
, que puede ser gestionada por una
construcción try
.
En sistemas Unix tipo BSD, los guiones Python se pueden hacer ejecutables directamente, como guiones de línea de órdenes, poniendo la línea
#! /usr/bin/env python
(suponiendo que el intérprete está en el $PATH del usuario) al principio del guion y dándole al guion permisos de ejecución. "#!" deben ser los primeros caracteres del fichero. Observa que la almohadilla, "#", se utiliza para iniciar un comentario en Python.
Al usar Python interactivamente, suele ser útil que se ejecuten algunas órdenes estándar cada vez que se arranca el intérprete. Se puede lograr esto poniendo en la variable de entorno $PYTHONSTARTUP el nombre del fichero que contiene las órdenes de arranque. Esto se parece a la característica .profile de la línea de órdenes de Unix o al fichero autoexec.bat de MS-DOS.
Este fichero sólo se lee en sesiones interactivas, no cuando Python
lee órdenes de un guion, ni cuando se utiliza
/dev/tty como fuente explícita de órdenes (lo que hace que se
comporte casi como una sesión interactiva).
Estas órdenes se ejecutan en el mismo espacio nominal que las órdenes,
para que los objetos definidos o módulos importados se puedan usar sin
necesidad de cualificarlos en la sesión interactiva.
También puede cambiar los indicadores principal y secundario
(sys.ps1
y sys.ps2
) usando este fichero.
Si deseas leer un archivo de arranque adicional del directorio actual puedes programarlo así en el fichero de arranque global, es decir "if os.path.isfile('.pythonrc.py'): execfile('.pythonrc.py')". Si deseas utilizar el fichero de arranque en un guion, debes hacerlo explícitamente dentro del guion:
import os nombreFich = os.environ.get('PYTHONSTARTUP') if nombreFich and os.path.isfile(nombreFich): execfile(nombreFich)