IDLE - présentation rapide

L'environnement de développement standard Python

Raphaël SEBAN

Petite présentation rapide du logiciel IDLE, l'environnement de développement intégré (EDI) fourni généralement par défaut avec l'installation standard du langage Python.

Commentez

- Titre : IDLE - présentation rapide

- Auteur : Raphaël SEBAN

- Parution : 29 août 2014

- Public visé :

- Licence : Le contenu de cet article est rédigé par Raphaël SEBAN et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 non transposé. Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright ® 2013 Developpez.com.

Sommaire

- I. Introduction

- II. La console interactive Python

- II-A. Présentation

- II-B. Menu 'File'

- II-B-1. Options courantes

- II-B-2. Option 'Open Module'

- II-B-3. Option 'Class Browser'

- II-B-4. Option 'Path Browser'

- II-C. Menu 'Edit'

- II-C-1. Options courantes

- II-C-2. Option 'Expand word'

- II-C-3. Option 'Show call tip'

- II-C-4. Option 'Show surrounding parens'

- II-C-5. Option 'Show Completions'

- II-D. Menu 'Shell'

- II-E. Menu 'Debug'

- II-E-1. Option 'Go to File/Line'

- II-E-2. Option 'Debugger'

- II-E-3. Option 'Stack Viewer'

- II-E-4. Option 'Auto-open Stack Viewer'

- II-F. Menu 'Options' (Shell)

- II-F-1. Option 'Configure IDLE'

- II-F-1-a. Onglet 'Fonts/Tabs'

- II-F-1-b. Onglet 'Highlighting'

- II-F-1-c. Onglet 'Keys'

- II-F-1-d. Onglet 'General'

- II-G. Menu 'Windows'

- II-H. Menu 'Help'

- III. L'éditeur de texte brut

- III-A. Présentation

- III-B. Menu 'File'

- III-C. Menu 'Edit'

- III-D. Menu 'Format'

- III-E. Menu 'Run'

- III-F. Menu 'Options' (Script)

- III-G. Menu 'Windows'

- III-H. Menu 'Help'

- IV. Remerciements

I - Introduction

L'environnement de développement intégré IDLE est un logiciel spécialement conçu pour faciliter le codage en Python.

IDLE est souvent inclus par défaut lors de l'installation du langage Python sur votre machine.

Il existe une version IDLE pour Python2 et une version IDLE3 pour Python3.

Certaines distributions Linux® modernes n'intègrent plus désormais IDLE d'office avec leur langage Python installé par défaut. En revanche, IDLE demeure très facile et très rapide à installer sur ces plates-formes grâce aux puissantes logithèques qu'elles fournissent. La distribution Linux® Ubuntu™ - par exemple - fournit une logithèque très pratique pour installer et désinstaller vos programmes préférés en un tour de main.

Bien que d'utilisation simple et d'interface plutôt dépouillée (Tkinter), IDLE recèle néanmoins quelques outils particulièrement intéressants.

II - La console interactive Python

Dans la suite de cet article, nous nous baserons sur la version IDLE pour Python2, sachant toutefois que vous pouvez aisément tout transposer pour IDLE3 (Python3), les fonctionnalités étant les mêmes d'une version à l'autre.

II-A - Présentation

Commençons par la console interactive Python.

La fenêtre dite Shell d'IDLE est composée d'un menu, d'une zone de texte éditable dans laquelle nous pouvons saisir des données et d'une barre d'état qui nous fournit des indications de lignes et de colonnes sur l'endroit où se trouve le curseur clignotant à un moment donné.

C'est la zone de texte de la fenêtre Shell que l'on nomme la console interactive Python.

En effet, lorsque vous saisissez des commandes ou des calculs à la suite d'une invite de commande ('>>>'), puis que vous pressez la touche 'Return' (retour chariot) de votre clavier, vos données sont directement envoyées à l'interpréteur Python pour y être exécutées.

Le résultat de votre requête s'affiche alors à la ligne suivante, toujours dans cette même zone de texte, puis de nouveau une invite de commande ('>>>') apparaît pour attendre vos instructions.

C'est ce dialogue permanent entre commandes saisies et résultats fournis que l'on appelle l'interactivité de la console.

Une console interactive Python ne sert pas à écrire des programmes entiers !

Une console interactive Python sert à effectuer des petits tests vite faits pour vérifier tel ou tel point de doute dans vos programmes.

Pour rédiger un script Python, veuillez plutôt consulter la rubrique concernant L'éditeur de texte brut d'IDLE.

Voyons à présent le détail des menus de la fenêtre Shell d'IDLE.

II-B - Menu 'File'

II-B-1 - Options courantes

Nous n'allons pas nous attarder sur les options les plus courantes :

- New File : crée un nouveau fichier de script vierge dans une nouvelle fenêtre Script ;

- Open : ouvre un fichier existant à partir d'un emplacement donné ;

- Recent Files : liste les derniers fichiers ouverts, ouvre le fichier sélectionné parmi la liste ;

- Save : enregistre le contenu texte de la fenêtre actuelle (Shell ou Script) dans un fichier ;

- Save As : enregistre le contenu texte de la fenêtre actuelle (Shell ou Script) sous un nouveau chemin de fichier (emplacement et/ou nom) ;

- Save Copy As : enregistre une copie du contenu texte de la fenêtre actuelle (Shell ou Script) sous un nouveau chemin de fichier (emplacement et/ou nom) ;

- Print Window : envoie le contenu texte de la fenêtre actuelle (Shell ou Script) vers le serveur d'impression (généralement vers une imprimante) ; notez que cette option ne fonctionne pas toujours correctement selon la configuration du système que l'on a ;

- Close : ferme uniquement la fenêtre actuelle ; l'application IDLE prendra fin si c'est la dernière fenêtre à fermer ;

- Exit : quitte l'application IDLE.

En revanche, nous allons nous intéresser plus particulièrement aux options de menu suivantes.

II-B-2 - Option 'Open Module'

Raccourci clavier standard : Alt-M

Premier outil de la série, il permet d'ouvrir le fichier script correspondant à un nom (ou un chemin) de module accessible via la variable d'environnement Python sys.path.

Exemple :

Qui permet de retrouver, d'ouvrir et de consulter :

Cet outil vous dispense d'aller chercher par vous-même le code source de modules standards ou de modules tiers installés dans dist-packages, par exemple.

II-B-3 - Option 'Class Browser'

Raccourci clavier standard : Alt-C.

Voici une aide précieuse au développement : un navigateur de symboles.

Un double-clic sur l'une ou l'autre des entrées affichées dans cet outil et vous voilà directement sur place dans le code de votre script !

Notez toutefois un petit défaut : Class Browser ne se remet pas automatiquement à jour lors d'une modification dans le script, il faut donc régulièrement le fermer puis le rouvrir si l'on veut un aperçu synchrone.

II-B-4 - Option 'Path Browser'

Pas de raccourci clavier standard.

À l'instar de l'Option 'Open Module', l'outil Path Browser permet aussi d'ouvrir le fichier de script correspondant à un module accessible via la variable d'environnement Python sys.path.

La seule différence ici est le moyen d'accès : Path Browser permet de parcourir les modules visuellement - et donc d'avoir une meilleure vue d'ensemble.

Il permet en outre de découvrir des modules que l'on ne connaît pas forcément.

II-C - Menu 'Edit'

II-C-1 - Options courantes

Nous n'allons pas nous attarder sur les options les plus courantes :

- Undo : annule la dernière modification effectuée dans la fenêtre concernée (pas plus de 1000 annulations) ;

- Redo : répète la dernière modification annulée (i.e. annule l'annulation), toujours dans la fenêtre concernée ;

- Cut : copie la sélection dans le presse-papiers système puis efface la sélection dans la zone de texte de la fenêtre concernée ;

- Copy : copie la sélection dans le presse-papiers système ;

- Paste : insère dans la zone de texte de la fenêtre concernée, le dernier contenu en date du presse-papiers système ;

- Select All : sélectionne tout le contenu de la zone de texte de la fenêtre concernée ;

- Find… : ouvre une boîte de dialogue permettant de rechercher une expression dans la fenêtre concernée avec diverses options de recherche ;

- Find again : répète la dernière recherche ;

- Find selection : recherche les occurrences correspondant au texte sélectionné dans la zone de texte de la fenêtre concernée ;

- Find in Files… : ouvre une boîte de dialogue permettant de rechercher une expression dans plusieurs fichiers de projet à la fois ;

- Replace… : ouvre une boîte de dialogue Chercher / Remplacer ;

- Go to line : ouvre une boîte de dialogue demandant un numéro de ligne puis place le curseur clignotant à cette ligne, si elle existe.

En revanche, nous allons nous intéresser plus particulièrement aux options de menu suivantes.

II-C-2 - Option 'Expand word'

Raccourci clavier standard : Alt-/.

Attention : sur le clavier AZERTY français, la combinaison de touches Alt-/ s'obtient en pressant trois touches : <Alt>, <Shift> et </>.

Complète un mot en cours de saisie par d'autres mots saisis précédemment, pour une même zone de texte d'une même fenêtre concernée.

Répétez la commande pour faire défiler toutes les possibilités.

Exemple simple :

ma_variable = 0
ma_var| # ici le curseur complétera avec 'ma_variable' si Alt-/

Exemple avec plusieurs entrées :

ma_variable = 0
ma_variance = 1
ma_var| # ici le curseur propose d'abord 'ma_variance' au 1er Alt-/
# puis 'ma_variable' au 2e Alt-/ puis revient à 'ma_var' au 3e
# Alt-/ et ainsi de suite en boucle

II-C-3 - Option 'Show call tip'

Raccourci clavier standard Windows™ : Alt-Espace.

Raccourci clavier standard Linux : Ctrl-\.

Attention : sur le clavier AZERTY français, la combinaison de touches Ctrl-\ s'obtient en pressant 3 touches : <Ctrl>, <Alt Gr> et <\>.

Seule cette option de menu comporte une différence entre le raccourci clavier de Linux et celui de Windows™, toutes les autres options ayant bien leurs raccourcis clavier communs aux deux systèmes.

Affiche la signature et le docstring d'une fonction (ou d'une méthode) lorsque le curseur clignotant est placé après la parenthèse ouvrante d'appel de la fonction (ou de la méthode).

Notez toutefois que pour un script donné, cette fonctionnalité ne se remet à jour qu'après avoir lancé au moins une fois le script (touche F5).

En revanche, cette particularité ne se vérifie pas pour les modules importés dans le script : les infos de signature et de docstring sont immédiates.

II-C-4 - Option 'Show surrounding parens'

Raccourci clavier standard : Ctrl-0.

Met en surbrillance le texte contenu entre les deux parenthèses englobantes les plus proches du curseur clignotant.

Cet outil permet de vérifier si des parenthèses ne sont pas manquantes ou excédantes.

II-C-5 - Option 'Show Completions'

Raccourci clavier standard : Ctrl-Espace.

Affiche une liste d'attributs, en fonction de ce qui a été saisi avant le curseur clignotant, pour permettre à l'utilisateur de compléter son entrée en sélectionnant dans cette liste le symbole de son choix avec les touches fléchées <Haut> / <Bas> du clavier ou en l'insérant directement grâce à la touche <Tabulation>.

Cette liste d'attributs comprend les symboles créés par l'utilisateur (variables globales, fonctions, classes, etc.) ainsi que les symboles Python standards : exceptions (*Error, *Warning, etc.), fonctions internes (abs, bin, len, etc.) et constantes du langage (True, False, None, NotImplemented, etc.).

II-D - Menu 'Shell'

Deux options de menu seulement :

- View Last Restart : fait défiler la fenêtre de la console interactive jusqu'au dernier point mentionné « === RESTART === » ;

- Restart Shell : redémarre la console interactive et efface toutes les données précédentes.

II-E - Menu 'Debug'

Découvrez le tutoriel Déboguer avec IDLE.

Étudions chaque option de menu dans le détail.

II-E-1 - Option 'Go to File/Line'

Pas de raccourci clavier standard.

Cet outil permet de se rendre au chevet du code source en plaçant le curseur clignotant sur la ligne de Traceback qui nous intéresse, puis en sélectionnant cette option dans le menu.

Cet outil ne fonctionne que sur les lignes de Traceback contenant un nom de fichier valide ainsi qu'un numéro de ligne renseigné et uniquement dans la console interactive.

II-E-2 - Option 'Debugger'

Pas de raccourci clavier standard.

Il s'agit d'une option de menu à cocher qui - lorsque cochée - ouvre dans la foulée la fenêtre Debugger (outil de traçage et de débogage d'IDLE) et place la console interactive en mode débogage « [DEBUG ON] ».

Cet outil en est encore au stade expérimental et devrait être utilisé avec la prudence qui s'impose pour un tel degré de développement.

II-E-3 - Option 'Stack Viewer'

Pas de raccourci clavier standard.

Affiche la fenêtre Stack Viewer qui renseigne sur le dernier message de Traceback non géré par l'application en cours d'exécution.

Ne lancez jamais la fenêtre Stack Viewer pendant une session de débogage active - c'est-à-dire quand la fenêtre Debugger est en cours d'utilisation, vous provoqueriez un plantage définitif du logiciel IDLE, avec l'obligation ensuite de recourir au gestionnaire de tâches de votre système pour tuer le processus gelé.

II-E-4 - Option 'Auto-open Stack Viewer'

Pas de raccourci clavier standard.

Il s'agit juste d'une option de menu à cocher.

Si l'option est cochée, la fenêtre Stack Viewer s'ouvrira automatiquement en cas de levée d'exception non gérée par le programme en cours d'exécution.

II-F - Menu 'Options' (Shell)

Une seule option de menu côté fenêtre Shell.

II-F-1 - Option 'Configure IDLE'

Ouvre le dialogue de personnalisation du logiciel (préférences utilisateur).

II-F-1-a - Onglet 'Fonts/Tabs'

Permet de sélectionner la police de caractères d'affichage du code ainsi que de paramétrer le nombre d'espaces blanches pour une indentation / tabulation dans le script.

La PEP 8 recommande l'usage de quatre espaces blanches pour l'indentation standard du code Python.

II-F-1-b - Onglet 'Highlighting'

Permet de sélectionner des profils de coloration syntaxique prédéfinis ou de se créer son profil personnel.

II-F-1-c - Onglet 'Keys'

Permet de redéfinir les raccourcis clavier de l'application.

II-F-1-d - Onglet 'General'

Permet de définir des préférences générales.

L'option de menu 'Code Context' n'est valable que côté fenêtre Script.

II-G - Menu 'Windows'

Une seule option de menu : Zoom Height.

Cette option permet de basculer entre la taille normale définie dans l'Onglet 'General' (par défaut 40 lignes de 80 colonnes) et la hauteur maximale d'affichage.

Le reste du menu se compose d'une liste de fenêtres ouvertes dans l'application. Un simple clic sur l'une ou l'autre des options de cette liste fait passer la fenêtre concernée au premier plan d'affichage.

II-H - Menu 'Help'

Quelques options on ne peut plus classiques :

- About IDLE : affiche la fenêtre « à propos de... » récapitulant le numéro de version du logiciel, les mentions de copyright, la licence, les remerciements, etc. ;

- IDLE Help : affiche une fenêtre d'aide sommaire sur l'utilisation d'IDLE (en anglais) ;

- Python Docs :

- affiche la documentation Python locale à la machine, si celle-ci est installée,

- affiche les sources additionnelles définies dans l'Onglet 'General', si celles-ci sont effectivement définies,

- enfin, si aucune des options précédentes n'est disponible, lance le navigateur internet par défaut avec l'adresse docs.python.org correspondant à la version Python utilisée par le logiciel pour accéder à la documentation officielle Python.

III - L'éditeur de texte brut

III-A - Présentation

L'éditeur de texte brut d'IDLE est l'outil principal pour la rédaction de scripts Python.

Tout comme la fenêtre Shell d'IDLE, la fenêtre Script se compose d'un menu, d'une zone de texte éditable et d'une barre d'état indiquant la position du curseur clignotant.

Notez qu'IDLE implémente une coloration syntaxique personnalisable (menu 'Options' > 'Configure IDLE' puis sélectionner l'Onglet 'Highlighting').

Certain(e)s regretteront sans doute de ne pas pouvoir se repérer dans le script grâce aux numéros de ligne, mais hormis cette fonctionnalité qui fait cruellement défaut, le reste de l'éditeur de texte demeure plutôt de bonne facture.

Voyons à présent le détail des menus de la fenêtre Script d'IDLE.

III-B - Menu 'File'

Idem que celui de la fenêtre Shell : Menu 'File'.

III-C - Menu 'Edit'

Idem que celui de la fenêtre Shell : Menu 'Edit'.

III-D - Menu 'Format'

Rien de bien spécial de ce côté-ci :

- Indent region : déplace le bloc de texte sélectionné d'un cran d'indentation vers la droite (quatre espaces blanches par défaut) ;

- Dedent region : déplace le bloc de texte sélectionné d'un cran de désindentation vers la gauche (quatre espaces blanches par défaut) ;

- Comment out region : insère les caractères de commentaire '##' en début de ligne(s) sélectionnée(s) ;

- Uncomment region : retire le(s) caractère(s) de commentaire '#' préalablement placé(s) en début de ligne(s) sélectionnée(s) ;

- Tabify region : remplace dans les lignes sélectionnées les espaces blanches d'indentation par des caractères de tabulation ('\t') équivalant à huit espaces blanches fixes par tabulation (non modifiable) ;

- Untabify region : remplace les caractères de tabulation ('\t') par le nombre d'espaces blanches défini dans la configuration d'indentation (quatre espaces blanches par défaut) ;

- Toggle tabs : ouvre une boîte de dialogue pour choisir entre indentation par espaces blanches et tabulations ;

- New Indent Width : ouvre une boîte de dialogue pour choisir une nouvelle largeur d'indentation (en nombre d'espaces blanches) ;

- Format Paragraph : redécoupe le paragraphe où se trouve le curseur clignotant de manière à ne pas dépasser le nombre de colonnes indiqué dans la préférence générale « Paragraph reformat width (in characters) » ; un paragraphe est une ligne de texte de longueur arbitraire séparée d'une autre ligne de texte par au moins une ligne vide (minimum deux retours chariot - '\n\n') ;

- Strip trailing whitespace : retire les espaces blanches en fin de ligne.

La PEP 8 recommande l'usage de quatre espaces blanches pour l'indentation standard du code Python.

III-E - Menu 'Run'

Trois options de menu très fonctionnelles :

- Python Shell : ouvre ou passe la fenêtre Shell de la console interactive Python au premier plan d'affichage ;

- Check module : vérifie la syntaxe Python du script se trouvant dans la fenêtre Script actuelle ; si le script n'a pas été préalablement enregistré, une boîte de dialogue en fera la demande ; cette vérification syntaxique ne signale rien lorsque tout est OK dans le script ;

- Run module : redémarre la console interactive Python de la fenêtre Shell puis lance l'exécution du script ; si le script n'a pas été préalablement enregistré, une boîte de dialogue en fera la demande.

III-F - Menu 'Options' (Script)

Deux options de menu seulement :

- Configure IDLE : voir détails dans la rubrique Menu 'Options' (Shell) ;

- Code Context : affiche un cadre grisé au-dessus de la zone de texte de la fenêtre Script pour préciser où l'on se trouve (classe, fonction, condition, etc.) sur de très grandes portions de code.

À l'heure où nous écrivons ces lignes, un bogue « TypeError: coercing to Unicode: need string or buffer, _tkinter.Tcl_Obj found » empêche l'outil Code Context de fonctionner correctement sur certaines plates-formes dans la version IDLE pour Python2.

La capture d'écran suivante a été réalisée sur IDLE3 pour Python3.

III-G - Menu 'Windows'

Idem que celui de la fenêtre Shell : Menu 'Windows'.

III-H - Menu 'Help'

Idem que celui de la fenêtre Shell : Menu 'Help'.

IV - Remerciements

Je tiens à remercier chaleureusement toutes les équipes du site Développez.com pour leur relectures attentives, leurs suggestions très pertinentes et leur soutien en général.

Je remercie en particulier Jacques THÉRY (jacques_jean) pour la relecture et la correction orthographique, ainsi que Fabien (f-leb) pour la relecture technique.