Il existe de nombreux éditeurs de texte et environnements de développement intégrés (IDE = Integrated Development Environment) qui supportent Python. En voici une liste non exhaustive (vous pouvez y ajouter tous les éditeurs de texte, entre autre ceux dédiés au HTML qui pour certains contiennent en plus des modules pour un petit suppport de Python - typiquement la coloration syntaxique).
Tableau Récapitulatif |
|||||
Nom |
Type |
Windows |
Linux |
MacOS |
Disponibilité |
Editeur |
_ |
_ |
X |
Commercial |
|
IDE |
X |
X |
_ |
Commercial |
|
Editeur |
X |
_ |
_ |
Binaire |
|
Editeur+shell |
X |
X |
_ |
GPL |
|
Editeur+machine à café |
X |
X |
X |
libre open source |
|
Editeur |
X |
_ |
_ |
Commercial |
|
Editeur+machine à café |
X |
X |
X |
GPL |
|
IDE |
_ |
X |
_ |
? |
|
Editeur+shell |
X |
X |
X |
PSF |
|
Editeur+shell |
_ |
KDE |
_ |
?GPL? |
|
IDE |
X |
X |
_ |
Commercial |
|
Editeur |
X |
_ |
_ |
GPL |
|
Editeur |
_ |
_ |
MacOSX |
? |
|
Editeur |
_ |
X |
_ |
? |
|
Editeur+shell |
X |
_ |
_ |
libre |
|
Editeur+shell |
X |
X |
_ |
libre (CNRI Python License) |
|
Editeur |
_ |
_ |
MaxOSX |
GPL |
|
Editeur |
X |
X |
X |
GPL |
|
Editeur |
X |
X |
X |
Freeware |
|
Helios Software Solutions |
X |
_ |
_ |
Commercial/Shareware |
|
Editeur |
_ |
_ |
X |
Binaire |
|
Editeur |
X |
_ |
_ |
libre |
|
Editeur |
X |
X |
X |
charityware (compatible GPL) |
|
IDE |
X |
X |
MacOSX |
Commercial |
|
IDE |
X |
X |
X |
GPL |
Un tableau de synthèse des fonctinnalités, plus détaillé, est disponible sur EditeursEtIDESynthese.
Informations
Tabulations
Quel que soit l'outil que vous utilisez pour éditer votre code, il est très fortement conseillé de le paramétrer afin qu'il n'utilise pas le caractère tabulation pour réaliser l'indentation, mais des espaces (généralement 4). Faute de quoi vous vous préparez à de longues chasses aux bugs d'indentation (pour Python 1 tab équivaut à 1 espace - mais graphiquement vous le voyez autrement dans votre éditeur - et comme en Python c'est l'indentation qui marque les blocs...).
Encodage des fichiers
Cette section est déplacée dans JouerAvecUnicode.
Discussions sur ce sujet
* sur AFPY
Pour les shell
Certains outils listés ici proposent directement un shell interactif Python, permettant de faire rapidement des petits tests. De nombreux utilisateurs utilisent aussi IPython qui est un shell Python avancé.
Petit glossaire
Code folding
Technique proposée dans les éditeurs pour permettre de condenser des parties de code logiquement dépendantes. Cela se traduit généralement par un ruban sur la gauche, et un indicateur graphique, qui permettent par un simple clic de réduire un bloc de code à sa première ligne, et par un autre clic, de le ré-afficher de nouveau.
Lignes d'indentation
Petites lignes affichées dans l'éditeur pour marquer les niveaux d'indentation. Permet de s'y retrouver plus facilement lorsque ces niveaux deviennent trop nombreux.
Limite de lignes
Petite ligne verticale affichée sur une colonne (réglable), permettant de voir une limite pour la largeur des sources (et d'éviter d'avoir des lignes trop longues).
Identification du parenthèsage
Lorsque le curseur est sur une parenthèse (crochet ou accolade), signale la parenthèse parente en respectant le nombre d'ouvertures/fermetures de parenthèses. Permet d'identifier rapidement lorsque l'on a une parenthèse en moins ou en trop.
Auto-complétion
Système permettant via l'appui d'une touche, que l'éditeur termine automatiquement la saisie en fonction du contexte.
Call-tips
Une petite zone d'information s'affiche lorsque l'on saisi les paramètres d'appel d'une fonction (ou méthode), et affiche les informations de documentation sur les paramètres de cette fonction.
RAD
Ou Rapid Application Development. Outils permettant de générer très rapidement des applications. Généralement les RAD permettent la création facile d'interfaces graphiques et leur liaison avec le code opérationnel. Certains RAD ont aussi des outils facilitant la mise en oeuvre des bases de données.
Window Splitting
Element d'interface utilisateur permettant de séparer une fenêtre en deux afin d'avoir deux vues différentes sur le même document.
Scintilla
Une librairie de base pour créer des éditeurs, avec un fonctionnement possible sous Windows (Win32) et sous Linux/Unix (via la librairie graphique GTK+), utilisée dans un certain nombre d'éditeurs listés ici. Plus de détails sur http://www.scintilla.org/.
wxPython et wxWidgets
WxWidgets (Anciennement wxWindows) est une librairie graphique permettent de développer des applications multi-plateformes (Windows, Unix). WxPython est la couche Python permettant d'utiliser cette librairie. Plus de détails sur http://www.wxpython.org/ et sur http://wxwidgets.org/.
Pour les rédacteurs
Pour lister les fonctionnalités supportées par les éditeurs et IDE, merci de s'inspirer de la liste ci-dessous, d'en dupliquer les fonctionnalités supportés par les outils, de compléter les lignes si nécessaires, et d'ajouter les fonctionnalités que j'aurais oublié (ici et dans l'éditeur concerné). Si une fonctionnalité nécessite un module à ajouter, l'indiquer en mettant (plugin) à côté. L.Pointal.
Fonctionnalités:
- Numérotation des lignes
- Indentation automatique
- Coloration syntaxique
- Code folding
- Window splitting
- Lignes d'indentation
- Limite de lignes
- Identification du parenthèsage
- Choix encodage
- Marques de déplacement rapide
- Recherche par expression régulière
- Recherche multi-fichiers
- Auto-complétion
- Call-tips
- Aide en ligne sur Python et librairies
- Débogueur [graphique]
Browser: <classes,modules,pythonpath>
- Shell interactif
- Gestion de versions: CVS Subversion
- Gestion des tests unitaires
Génération automatique de documentation: <système de documentation>
RAD graphique: <librairie(s) cible(s)>
RAD bases de données: <base(s) cible(s)>
- RAD www
- Support schéma UML
Plugins: <langages de développement des plugins>
Note: Peut-être peut-on présenter ça sous forme d'un tableau synthétique qui reprenne les infos pour l'ensemble des outils, mais j'ai peur qu'il soit un peu trop grand à l'affichage...
J'ai mis une zone "Utilisé par:" pour chaque éditeur, vous pouvez y mettre votre nom/alias connu de façon à ce que les débutants puissent identifier les outils utilisés par des personnes qu'ils voient contribuer aux forums et listes de discussion (ou encore qu'ils voient les outils les plus utilisés...).
Les éditeurs et IDE
Vous trouverez ici des commentaires et des liens sur chaque éditeur/IDE.
BBEdit
Disponible sur: http://www.barebones.com/products/bbedit/index.shtml
Un éditeur historique sur Macintosh pour le développement, actuellement en version 8. Version de démonstration disponible sur différents sites de téléchargement (Apple Downloads, ZDNet). La version commerciale coûte environ 180$. Barebones propose aussi l'éditeur TextWrangler2.
Utilisé par:
BlackAdder
Disponible sur: http://www.thekompany.com/products/blackadder/
Pour les plateformes Windows et Linux.
Environnement de développement intégré de la société theKompany, il permet de générer des interfaces utilisateur basées sur la librairie Qt3 en faisant du RAD. Il intègre un module d'interface bases de données.
Version de démonstration ici.
Utilisé par:
ConTEXT
Disponible sur: http://www.context.cx/
Editeur de texte dédié développement sur la plateforme Windows. Très largement paramétrable, support de la coloration syntaxique pour de nombreux langages (on peut en ajouter via de simples fichiers textes). Librement utilisable, mais pas open source.
Utilisé par:
DrPython
Disponible sur: http://drpython.sourceforge.net/
Basé sur Scintilla et wxPython, contient un éditeur et une console avec un shell Python interactif. Détail des fonctionnalités sur http://drpython.sourceforge.net/#Features.
On peut de plus étendre le fonctionnalités de DrPython grace à un systeme de Plug-in. On pourra trouvé une liste des plugin disponible à l'adresse http://drpython.sourceforge.net/cgi-bin/SearchPlugins.py?searchtext=&type=All
Utilisé par:
Eclipse
Disponible sur: http://www.eclipse.org/
Voir le plugin ["http://pydev.sf.net/" pyDev].
Et voir le produit commercial TruStudio sur http://www.xored.com/trustudio disponible sous une version open source "foundation" et sous une version commerciale
Le projet Eclipse est issu d'IBM et est maintenant géré par une fondation regroupant de nombreuses sociétés. Il s'agit d'un environnement de développement en Java, ciblant initialement le langage Java, et disposant d'un mécanisme de plugins qui permettent de l'enrichir dans tous les sens, avec les inconvénients (vraie usine à gaz), et les avantages (plein d'outils disponibles, gestion de projet, tests unitaires,...).
Demande une machine assez puissante, et un temps d'adaptation. Mais permet après de développer aussi dans d'autres langages en utilisant cet environnement.
Utilisé par:
Edit Plus 2
Disponible sur: http://www.editplus.com/
Editeur commercial destiné à la programmation, dispose d'une extension pour la coloration syntaxique des sources Python.
Utilisé par:
GNU Emacs
Disponible sur http://www.gnu.org/software/emacs/emacs.html
Il y a un mode Python sur: http://sourceforge.net/projects/python-mode/
Faut-il encore le présenter... "Emacs is the extensible, customizable, self-documenting real-time display editor". L'outil de prédilection pour certains, qui permet de tout faire sans en sortir. Une usine à gaz pour d'autres. Si vous n'avez pas encore pris d'autres habitudes, ça sera un environnement que vous pourrez réutiliser à d'autres moments, l'apprentissage sera rentable ; si vous avez déjà des habitudes le passage sera plus difficile.
Possibilité de faire communiquer emacs et python (ie: étendre Emacs en Python) avec pymacs : http://pymacs.progiciels-bpi.ca/ Outre les fonctionnalités usuelles (colorisation, indentation etc), le mode Python d'Emacs permet de lancer un interpréteur Python comme sous-process d'Emacs et d'évaluer dynamiquement tout ou partie du fichier en cours d'édition. En ajoutant ECB (Emacs Code Browser, une extension Emacs pour naviguer dans le code) et l'intégration à un contrôleur de code source (CVS, SVN, Arch...), on obtient un IDE complet et très puissant.
Aides:
http://www.linux-france.org/article/appli/emacs/manuel/html/index.html
http://www.emacswiki.org/cgi-bin/emacs-fr/
Utilisé par: Bruno Desthuilliers (Modulix)
Eric3
Disponible sur: http://www.die-offenbachs.de/eric/index.html
Un environnement de développement open source, ciblant le développement d'applications avec la librairie Qt3. L'environnement est complet: RAD, éditeur, débogueur, intégration SVN, ...
Il peut aussi fonctionner sous Windows... à la condition de trouver une version de Qt3 avec son bonding Python qui fonctionne sur cette plateforme (note: l'éditeur de Qt a récemment annoncé qu'il y aurait une version GPL de Qt pour Windows, cela devrait faciliter les choses).
Note : en plus de Qt, l'installation d'eric3 nécessite les modules Pyqt, SIP et QScintilla.
Utilisé par: Julien Vienne (traducteur officiel!)
IDLE
Disponible sur: votre machine mais il y a un site http://www.python.org/idle/.
Il s'agit de l'environnement de développement installé en standard avec Python. Il utilise la librairie graphique Tkinter (adaptation sous Python de la librairie Tk du langage TCL). Il intègre un shell Python avec affichage de l'aide sur les fonctions dans des infobulles.
Note: si vous testez des applications graphiques Python, il vaut mieux les lancer directement, car Tkinter risque sinon d'interférer avec ces applications.
Utilisé par:
Kate
Disponible sur: http://kate.kde.org/
Le KDE Advanced Text Editor est un éditeur de texte orienté développement, bien adapté pour Python, dispose d'une zone shell dans laquelle on peut lancer une session Python interactive pour faire des tests. Bonne gestion des marques dans le texte pour des déplacements rapides, code folding, lignes d'indentation. Il s'agit d'une application de KDE, donc bien intégrée dans cet environnement, et il est possible de lui adjoindre des plugins.
Utilisé par: Laurent Pointal
Komodo
Disponible sur: http://www.activestate.com/Products/Komodo/
Outil commercial d'ActtiveState.
Notepad++
Disponible sur: http://notepad-plus.sourceforge.net/
Très bon éditeur de sources sous Windows, qui plus est sous license GPL. Zoom rapide avec ctrl+molette.
Permet d'ajouter ce que l'on veut pour l'auto-complétion.
Utilisé par: Laurent Pointal
PyOXIDE
Disponible sur: http://projects.gandreas.com/pyoxide/index.html
Editeur sous Mac OS X écrit en partie en Objective-C et en partie en Python. Dispose d'un débogueur à distance. Gestion de projets. Complétion du code, texte de description des fonctions. Dommage que l'application ne soit pas très stable.
Utilisé par: Laurent Pierron
Pype
Disponible sur: http://pype.sourceforge.net/
Editeur écrit en Python, basé sur wxPython pour l'interface graphique.
Utilisé par:
PythonWin
Disponible sur: http://sourceforge.net/projects/pywin32/
Editeur ajouté en standard lorsque l'on installe le module d'extension Win32 sous Windows. Intègre des outils pour le support de COM/DCOM sous Windows.
Utilisé par: Michel Orengo
PyScripter
Disponible sur: http://mmm-experts.com/Downloads.aspx?ProductId=4 Grande référence en matière de développement en Python dans l'industrie. Une rolls, freeware de surcroît : autocomplétion, navigation, vérification syntaxique, debugger, expression régulier, génération de TU, etc... le tout en 3 Mo ! Utilisé par: Alcatel Postal, Thales, Nasa ...
SciTE
Disponible sur: http://www.scintilla.org/SciTE.html
Editeur de texte pour Python basé sur Scintilla pour X ou Win32. Intègre la coloration syntaxique, la complétion et le pliage de code. Un fichier de configuration permet de régler de nombreux paramètres assez simplement. Bonne documentation (en anglais).
Utilisé par: Julien Vienne
Smultron
Disponible sur: http://smultron.sourceforge.net/
Editeur de texte générique avec coloration syntaxique pour MacOS X. Edition multifichier agréable, une seule fenêtre et une vue permanente de tous les fichiers en cours permet éventuellement de les enregistrer sous forme de projet. Une bibliothèque de morceaux de codes, très pratique pour le HTML et les entêtes de fichiers Python. Exécutable depuis une fenêtre Terminal.
Utilisé par: Laurent Pierron
SPE
Disponible sur: http://spe.pycs.net/
Le Stani's Python Editor. Editeur dédié Python.
Utilisé par:
TextPad
Utilisé par: MCI
Rapide, multi-fichiers, macro-commandes, multi-langages (il existe des fichiers de configuration pour Python), en français, largement configurable, support ANSI, DOS, UTF-8, binaire (à peu près).
La version shareware affiche, de temps en temps, une message.
Ce que j'apprécie beaucoup, c'est la persistance du positionnement horizontal, lors des déplacements verticaux (y compris insertions) ; cela facilite les traitements multi-lignes.
TextWrangler 2
Disponible sur: http://www.barebones.com/products/textwrangler/index.shtml
Plus avancé que la version allégée de BBEdit de la même société.
Utilisé par:
TurboPad
Disponible sur: http://turbopad.sourceforge.net/
Utilisé par:
Vim
Disponible sur: http://www.vim.org/
Le vi amélioré (vi improved). En recherchant Python sur le site vim.org, vous trouverez divers liens (outils, trucs et astuces, configurations...) concernant l'utilisation de VIM pour l'édition de sources Python, voir pour l'utilisation de Python comme langage outil de script dans VIM. On a ainsi dans vim l'auto-complétion, le code folding, l'aide en ligne sur les librairies...
Utilisé par: Wilk (william dodé)
La page Vim du wiki : Vim
Wing IDE
Disponible sur: http://wingware.com/wingide
Version démo sur: http://wingware.com/wingide/trial
Environnement de développement multi-plateformes ayant bonne réputation. Il existe une version "professional" et une version "personal". Le source de la version professional est accessible sous NDA (voir la license).
Utilisé par:
xRope
Disponible sur: http://sourceforge.net/projects/xrope/
Environnement de développement intégré, version beta: Utilise, python, Tkinter, Pmw et Rope (comme éditeur). Auteur: Serge Hulne. Utilisé par: Developpeurs