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