Voici un tuto pour bien configurer l'IDE (Environnement de Développement Intégré) Eric. Il s'inscrit dans la continuité de : Arrêtons d'utiliser l'IDE Spyder !. Le prosélytisme n'est pas le but ici même s'il s'agit d'encourager le remplacement d'un IDE merdique par d'autres solutions; il s'agit aussi de démontrer que Python est un langage sur lequel viennent se greffer divers logiciels (consoles, éditeurs de texte, interpréteurs, IDE). (En gros : On est pas sur R).
Remarque provisoire: Un tuto sur l'utilisation de PyCharm devrait suivre (logiciel plus complet, mais aussi plus lourd. Eric fait peu en comparaison mais il le fait bien); ssi le rédacteur décide de se sortir les doigts un jour...
Dédié aux langages Python et Ruby, Eric est basé sur le très puissant composant d'édition de code Scintilla (tout comme Notepad++), et sur le framework Qt. Il permet de gérer facilement des projets incluant de multiples modules, de générer des diagrammes UML simples, d'afficher des statistiques sur le code, etc.
Eric est disponible sur Windows et sous GNU/Linux, où plusieurs versions coexistent dans les dépôts des distributions. En théorie Eric 4 n'est censé gérer que Python2 tandis que les versions ultérieures supportent officiellement les deux versions de Python.
Pour faire court : Je prendrai le panneau des Préférences en partant du haut, en essayant de décrire les effets avant/après modifications.
Sommaire
Exécution du code
Eric autorise plusieurs modes d'exécution de vos scripts/projets. Dans le menu Start vous trouverez:
- Run Script, F2
- Run Project, Maj+F2
- Restart, F4
Les deux premières options permettent de préciser l'environnement du script/projet (paramètres passés, dossier de travail, etc.) De prime abord, la boite de dialogue qui s'affiche peut sembler gênante; Avec de plus gros projets elle s'avère pourtant très utile. Pour limiter les pertes de temps, l'option Restart permet de rejouer la précédente action sans étape intermédiaire.
Par défaut le code s'exécute et affiche une boite de dialogue finale contenant le retour du programme (erreurs). L'éditeur capture en effet ce que renvoie l'interpréteur Python.
- Note : À tout moment vous pouvez relire les exceptions et erreurs dans la fenêtre du débugger (en cliquant dessus, vous serez envoyés dans le code fautif).
Les paragraphes ci-dessous expliquent comment modifier ces comportements.
Debugger / General
Cochez Don't show client exit dialog for a clean exit; Cette fois le retour d'exécution sera notifié en haut à gauche de l'écran (Cf le paragraphe ci-dessous pour désactiver cela).
- Note : Ce comportement est néanmoins utile, ne serait-ce que pour savoir si le script tourne en boucle infinie. En réalité c'est simple, pour tester le code que vous venez de faire, vous avez la main sur F4 ou F2 et sur Entrée pour valider la sortie. Comme c'est dur de trouver les touches en dehors de ZQSD voici une piste (PS: ce sont les touches bleues):
Notifications
Désactivez les notification ou réglez leur durée d'affichage.
Choix de l'interpréteur Python : Debugger / Python3
C'est ici que vous pourrez spécifier le chemin vers l'interpréteur Python de votre choix.
Inutile de configurer l'interpréteur Python2 car plus personne ne l'utilise; le langage est mort.
Note : Ici j'exécute mon code dans un environnement virtuel (cf le chemin bizarre); Eric dispose pourtant d'un plugin dédié à ce type d'usage (voir à la fin de l'article). Pour apprendre à utiliser les environnements virtuels faites un tour ici.
PS : Sur Eric4, il s'agit de l'unique moyen d'utiliser l'interpréteur Python3.
PS2 : Pour connaître la localisation de l'interpréteur, faites
which pythonXXX
.
Application
Vous pouvez cocher Global Session pour retrouver votre environnement inchangé d'un redémarrage sur l'autre.
Éditeur
Autocompletion
Activez l'auto-complétion du code. Ajustez à votre convenance le nombre de lettres à partir duquel elle s'affiche. Réglez également la provenance des propositions : Document courant / API du langage ou des modules importés.
Filehandling
Voici une option vitale : Le retrait automatique des espaces excédentaires en fin de ligne lors de l'enregistrement des fichiers. Ils ne respectent pas la PEP8, ils déclenchent des warning dans git; bref, produisez des fichiers propres !
Général
Encore une option vitale : En Python les indentations se font avec des espaces. 4 espaces ! Les tabulations \t
sont supportées mais ne respectent pas la PEP8. Un code Python doit avoir la même tête quelque-soit le logiciel utilisé pour l'afficher. Or l'espace "virtuel" occupé par une tabulation est variable d'un éditeur à l'autre contrairement à celui occupé par 4 espaces. Bref : tabulations en Python = code dégueulasse.
Highlighters
Eric reconnaît peu de mots-clés du langage pour la coloration syntaxique mais laisse la possibilité d'en ajouter. Ajoutez ceux-ci dans un nouveau set par exemple (combo box en haut à droite) :
global len tuple dict set time list zip str int float raw_input input exit type True False OrderedDict defaultdict any all
La gestion des styles est incontournable; c'est la configuration de l'affichage que vous aurez pendant des heures sous le nez; épargnez vos yeux !
Je fournis mes feuilles de styles servant à la coloration syntaxique des codes Python, pour deux versions d'Eric. Vous pourrez les importer via Settings/Preferences
, Editor/Highlighters/Styles
, Import all styles
:
Voici le résultat avant/après:
La police est Adobe Source-Code-Pro, une police de caractères dédiée à l'écriture de code:
Téléchargez la dernière version sur le dépôt github.
Dézippez :
tar zxvf police-font-source-code-pro-1.017R.tar.gz
Sous Linux vous pouvez ranger vos polices à 2 endroits, selon que vous vouliez les avoir au niveau du système ou au niveau utilisateur (selon les droits dont vous disposez aussi).
Créez un dossier adapté à la font dans:
- system : sudo mkdir /usr/share/fonts/sourcecodepro
user : ~/.fonts/sourcecodepro
Copiez-y les dossiers
OTF
,TTF
,WOFF
.Rechargez le cache :
fc-cache
Searching
Quand vous cliquez sur une variable/texte, l'éditeur va rechercher/encadrer automatiquement toutes les occurrences de votre sélection dans le fichier courant et les mettre en valeur. Maintenant que vous avez un fond noir, choisissez une couleur plus marquante (jaune ?)...
Style
Là encore quelques modifications à cause du fond noir. Affichez le prompt (caretline) en blanc sur fond noir; Modifiez la couleur de fond des couples de parenthèses lors d'une sélection.
Activez le délimiteur des 80 colonnes. C'est une norme qui parait stupide de nos jours. Mais dites vous que si vos codes dépassent cette limite, vous n'êtes pas concis, vous ne faites pas de fonctions indépendantes, votre code est donc mal découpé. Bref c'est de la merde illisible.
Typing
Il s'agit ici de la configuration du comportement automatique de l'éditeur en cours de rédaction.
- Automatic parenthesis insertion : Ajoute la parenthèse fermante automatiquement. À décocher si vous jugez que ce comportement est invasif (il l'est).
- Automatic quote insertion : Idem.
- Automatic insertion of the 'import' string on 'from xxx' : À décocher car la prédiction à ce niveau a peu de chances d'être correcte.
- Automatic insertion of ' ' after ',' : À décocher si faites le vous-mêmes (normalement oui).
Interface
Rendez le shell indépendant du debugger pour simplifier l'interface. embed in Debug-Viewer => separate window
Puis activez la possibilité de déplacer les éléments de l'interface par des glisser-déposer: Layout: Toolboxes
Les éléments de l'interface peuvent maintenant être déplacés à la souris, et fermés de manière indépendante:
Shell
Spécifiez la police du shell : Source-Code-Pro.
Les plugins
Les plugins disponibles sont accessibles dans le menu Plugins/Plugin Repository. Vous pouvez en installer au moins deux :
- Support de git si vous n'utilisez pas la console (quand même conseillé) =>
VCS, Git
- Support des environnements virtuels =>
Virtualenv Configurator
Cliquez sur Download & Install puis suivez les étapes.
La gestion de git se fera dans les Préférences, section Version Control Sytem.
Quelques options utiles
Le menu Project dispose de quelques outils de vérification/analyse/visualisation.
Exemple sur un projet: