Sous-sections


2. Utilisation de l'Interpréteur Python


2.1 Lancement de l'Interpréteur

L'interpréteur Python est habituellement installé à l'emplacement /usr/local/bin/python sur les machines Unix sur lesquelles il est disponible; placer /usr/local/bin dans le path de votre shell Unix permet de le lancer en tapant la commande

python

sous le shell. Puisque le choix du répertoire dans lequel est installé l'interpréteur est une option d'installation, d'autres endroits sont possibles; vérifiez avec votre gourou Python local ou votre administrateur système. (Par exemple, /usr/local/python est un autre emplacement populaire.)

Tapez le caractère EOF (Control-D sur Unix, Control-Z sur DOS ou Windows) à l'invite (prompt) principale pour quitter l'interpréteur avec un code de retour de zéro. Si ça ne marche pas, vous pouvez quitter l'interpréteur en tapant les commandes suivantes: "import sys; sys.exit()".

Les fonctions d'édition de ligne de l'interpréteur ne sont habituellement pas très sophistiquées. Sur Unix, celui qui a installé l'interpréteur peut avoir activé le support de la bibliothèque GNU Readline, qui ajoute une édition interactive plus élaborée et des fonctions d'historique. Peut-être la vérification la plus rapide pour savoir si l'édition de ligne de commande est supportée consiste à taper Control-P au premier prompt affiché par Python. Si ça fait un bip, vous disposez de l'édition de ligne de commande; voir l'Annexe A pour une introduction aux touches. Si rien ne semble se passer, ou si P est affiché, l'édition de ligne de commande n'est pas disponible; vous pourrez seulement utiliser backspace pour enlever des caractères de la ligne courante.

L'interpréteur fonctionne en quelque sorte comme le shell Unix: lorsqu'il est lancé avec l'entrée standard connectée à un périphérique tty, il lit et exécute les commandes interactivement; lorsqu'il est lancé avec un nom de fichier en argument ou avec un fichier comme entrée standard, il lit et exécute un script depuis ce fichier.

Une troisième façon de lancer l'interpréteur est "python -c commande [arg] ...", ce qui exécute les instructions dans commande, de façon analogue à l'option -c du shell. Puisque les instructions en Python contiennent souvent des espaces ou d'autres caractères qui sont spéciaux pour le shell, il est conseillé de mettre entièrement entre guillemets (doubles quotes) la commande.

Notez qu'il y a une différence entre "python fichier" et "python <fichier". Dans le second cas, les requêtes en entrée du programme, comme les appels à input() et raw_input(), sont effectuées depuis fichier. Puisque ce fichier a déjà été lu jusqu'à la fin par l'interpréteur avant que le programme ne commence à s'exécuter, le programme rencontrera immédiatement EOF. Dans le premier cas (qui est habituellement ce qu'on souhaite) les requêtes sont satisfaites par l'éventuel fichier ou périphérique qui est connecté à l'entrée standard de l'interpréteur Python.

Lorsqu'un fichier script est utilisé, il est parfois utile de pouvoir lancer le script et de passer ensuite en mode interactif. Ceci peut être fait en passant en paramètre -i avant le script. (Ceci ne marche pas si le script est lu depuis l'entrée standard, pour la même raison expliquée dans le paragraphe précédent.)


2.1.1 Passage de Paramètres

Lorsqu'ils sont connus de l'interpréteur, le nom du script et les paramètres supplémentaires sont passés au script dans la variable sys.argv, qui est une liste de chaînes. Sa longueur est d'au moins un; quand aucun script ou arguments n'est donné, sys.argv[0] est une chaîne vide. Lorsque le nom du script donné est '-' (c'est à dire l'entrée standard), sys.argv[0] est positionné à '-'. Quand -c commande est utilisé, sys.argv[0] est positionné à '-c'. Les options trouvées après -c commande ne sont pas retirées par le traitement des options de l'interpréteur Python mais laissées dans sys.argv pour être traitées par la commande.


2.1.2 Mode Interactif

Quand les commandes sont lues depuis un terminal, l'interpréteur fonctionne en mode interactif. Dans ce mode, il demande la commande suivante avec le prompt principal, habituellement trois signes supérieur ("»> "); pour les lignes de continuation, il questionne avec le prompt secondaire, par défaut trois points ("... "). L'interpréteur imprime un message de bienvenue spécifiant son numéro de version et une notice de copyright avant d'afficher le prompt principal, par ex.:

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
>>>

Les lignes de continuation sont nécessaires lorsqu'on saisit une construction sur plusieurs lignes. Comme exemple, voici une instruction if:

>>> le_monde_est_plat = 1
>>> if le_monde_est_plat:
...     print "Gaffe à pas tomber par dessus bord!"
... 
Gaffe à pas tomber par dessus bord!


2.2 L'Interpréteur et Son Environnement


2.2.1 Gestion des Erreurs

Quand une erreur survient, l'interpréteur imprime un message d'erreur et une trace de l'état de la pile. En mode interactif, il retourne alors au prompt principal; lorsque l'entrée se fait depuis un fichier, il termine l'exécution avec un code de sortie différent de zéro après avoir imprimé la trace de pile. (Les exceptions gérées par une clause except dans une instruction try ne sont pas des erreurs dans ce contexte; voir 8.2.) Certaines erreurs sont fatales dans tous les cas et causent une sortie avec un code différent de zéro; ceci se produit pour les aberrations internes et certains cas de saturation mémoire. Tous les messages d'erreur sont écrits sur la sortie d'erreur standard; l'affichage normal des commandes exécutées est effectué sur la sortie standard.

Taper le caractère d'interruption (habituellement Control-C ou DEL) au prompt principal ou secondaire annule la saisie et revient au prompt principal.2.1Taper le caractère d'interruption pendant l'exécution d'une commande déclenche l'exception KeyboardInterrupt, qui peut être gérée par une instruction try.


2.2.2 Scripts Python Exécutables

Sur les systèmes Unix à la BSD, les scripts Python peuvent être rendus directement exécutables, comme les shell-scripts, en plaçant la ligne

#! /usr/bin/env python

(en supposant que l'interpréteur est dans le $PATH de l'utilisateur au lancement du script) et rendant le fichier exécutable. Le "#!" doit correspondre aux deux premiers caractères du fichier.


2.2.3 Le Fichier de Démarrage Interactif

Quand vous utilisez Python de façon interactive, il est souvent pratique que certaines commandes standard soient exécutées à chaque fois que l'interpréteur est lancé. Vous pouvez faire ceci en donnant à la variable d'environnement $PYTHONSTARTUP la valeur du nom d'un fichier contenant vos commandes de démarrage. Ceci est analogue à l'utilisation du .profile pour les shells Unix.

Ce fichier est seulement lu avant les sessions interactives, non pas lorsque Python lit ses commandes dans un script, ni lorsque /dev/tty est fourni comme source explicite pour les commandes (ce qui pour le reste se comporte comme une session interactive). Il est exécuté dans le même espace de noms que celui où sont exécutées les commandes interactives, de sorte que les objets qu'il définit ou importe peuvent être utilisés directement dans la session interactive. Vous pouvez aussi changer les invites sys.ps1 et sys.ps2 dans ce fichier.

Si vous voulez lire un fichier de lancement additionnel depuis le répertoire courant, vous pouvez programmer cela dans le fichier de démarrage global, par ex. "execfile('.pythonrc')". Si vous voulez utiliser le fichier de démarrage dans un script, vous devez le faire explicitement dans le script:

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
    execfile(filename)



Notes

...2.1
Un problème avec la bibliothèque GNU Readline peut empêcher ceci.

See About this document... for information on suggesting changes.