đ Wing IDE â DĂ©bogueur Python, Analyse & Frameworks
Guide complet IDEO-Lab pour maßtriser Wing IDE, "l'IDE du débogage" Python.
Vue d'ensemble
Qu'est-ce que Wing IDE ? L'IDE "Debugger-First".
IDE Python WingwareEditions (Pro/Personal/101)
Comparaison des 3 versions (Pro, Personal, 101).
Wing Pro Wing Personal Wing 101Installation
Windows, macOS (Intel/ARM), Linux (deb/rpm).
Windows macOS LinuxGestion de Projet
.wpr, .wpu, "Project Properties", Python Path.
Gestion des Interpréteurs
vEnv, Conda, Interpréteur SystÚme, Docker.
vEnv Conda Python PathGestion des Paquets
UI, requirements.txt, pip, Poetry.
Ăditeur & Analyse
Auto-complétion, Source Assistant, PEP 8.
Completion PEP 8 Source AssistantRefactoring (Pro)
Rename, Extract, Move (fonctionnalités Pro).
Refactor Rename ExtractNavigation (Usages)
Find Usages, Go to Definition (F4).
Le Débogueur (Local)
Le point fort de Wing. Breakpoints, Stepping.
Debugger Breakpoints F5Debug Probe & Console
Console interactive, évaluation d'expressions.
Debug Probe Interactive ConsoleDebug Avancé (Pro)
Remote Debug, Multi-process/thread.
Remote Debug Multi-process ProfessionalTests (Pytest/Unittest)
Lancer les tests (Pytest, Unittest) via l'UI.
Pytest Unittest Test RunnerWeb Dev (Pro)
Support Django, Flask, Jinja2.
Django Flask ProfessionalData Science (Pro)
Jupyter, Pandas, Matplotlib, NumPy.
Jupyter Pandas ProfessionalIntégration Git
Commit, Push, Pull, History (Git, SVN, Mercurial).
Git VCSOutils (Terminal, OS)
Terminal intégré, Python Shell, OS Commands.
Terminal Python ShellCheat-sheet
Raccourcis clés (F5, F6, F7, F4).
L'IDE "Debugger-First"
Wing IDE (développé par Wingware) est l'un des premiers et des plus robustes IDE Python du marché. Il est souvent décrit comme un IDE "Debugger-First", car sa fonctionnalité phare a toujours été son débogueur puissant et intelligent.
Il est conçu exclusivement pour Python et vise à augmenter la productivité en fournissant une analyse de code profonde, une navigation facile et le meilleur débogueur de sa catégorie.
Cas d'usage
- Débogage complexe : Multi-processus, multi-thread, débogage à distance.
- Développement Web (Pro) : Django, Flask, FastAPI.
- Data Science (Pro) : Jupyter, Pandas, Matplotlib.
- Scripts & Prototypage : Ăditeur rapide et lĂ©ger (comparĂ© Ă d'autres IDE).
Philosophie (Léger & Puissant)
1. Création Projet
â (Configuration du Python Path)
âŒ
2. Codage
â (Ăditeur + Source Assistant)
âŒ
3. Analyse
â (Code Warnings, PEP 8)
âŒ
4. Test
â (Lancement via Test Runner)
âŒ
5. Debug (La force de Wing)
â (Local, Remote, Debug Probe)
âŒ
6. Commit (VCS)Positionnement : Wing IDE vs PyCharm
Wing et PyCharm sont les deux IDE Python "complets" historiques.
| CritĂšre | Wing IDE (Pro) | PyCharm (Professional) |
|---|---|---|
| Point Fort | Le DĂ©bogueur. (Surtout remote/multi-process). | Refactoring & ĂcosystĂšme. |
| Performance | Généralement plus léger et rapide (démarrage, édition). | Plus lourd, basé sur une indexation complÚte du projet. |
| Refactoring | Bon (Pro), mais moins "magique" que PyCharm. | Excellent. "Safe Rename" est la référence. |
| Intégration | TrÚs forte sur Python, bonne sur le reste. | Excellent. IntÚgre WebStorm (JS/TS) et DataGrip (SQL). |
| ĂcosystĂšme | IndĂ©pendant (Wingware). | Fait partie de l'Ă©cosystĂšme JetBrains (IntelliJ...). |
| Versions Gratuites | Wing Personal / 101 (limitées). | Community (trÚs capable, mais sans Web/Data). |
En résumé : Les développeurs choisissent souvent Wing pour son débogueur exceptionnel et sa légÚreté. PyCharm est choisi pour son refactoring "intelligent" et son écosystÚme JetBrains tout-en-un.
Wing propose 3 niveaux, chacun ciblant un public différent.
| Fonctionnalité | Wing 101 (Gratuit) | Wing Personal (Gratuit) | Wing Pro (Payant) |
|---|---|---|---|
| Cible | DĂ©butants (Ăducation) | Hobbyistes, Ătudiants | DĂ©veloppeurs Professionnels |
| Ăditeur | TrĂšs Basique | Bon (ComplĂ©tion, Syntax) | Excellent (Complet) |
| Débogueur | Oui (Basique) | Oui (Local) | Oui (Complet) |
| Refactoring | Non | Non | Oui |
| Tests (Unittest, Pytest) | Non | Non | Oui |
| Web Dev (Django, Flask) | Non | Non | Oui |
| Data Science (Jupyter, Pandas) | Non | Non | Oui |
| Debug Remote / Multi-process | Non | Non | Oui (Clé) |
En résumé : Wing 101 est pour apprendre la syntaxe. Wing Personal est pour des scripts simples. Wing Pro est le véritable IDE pour tout projet professionnel (Web, Data, ou scripts complexes).
L'installation de Wing est standard. Il n'y a pas de "Toolbox" comme JetBrains. Vous téléchargez l'installeur correspondant à votre OS depuis le site wingware.com.
| OS | Installeur |
|---|---|
| Windows | Installeur .exe |
| macOS | Image .dmg (Fournit des versions Intel et Apple Silicon ARM) |
| Linux | Paquets .deb (Ubuntu/Debian) ou .rpm (Fedora/RHEL), ou un script .sh générique. |
# Exemple d'installation (Ubuntu/Debian) sudo dpkg -i wing-pro-10.0.x.x_amd64.deb
Wing est centré sur la notion de "Projet". Un projet définit l'environnement, le Python Path, et les fichiers impliqués.
Fichiers de Projet
Wing crée deux fichiers (parfois un seul) à la racine de votre projet :
mon-projet.wpr: Fichier de "Projet". Contient les paramĂštres partagĂ©s (le Python Path, les configurations de debug). (Doit parfois ĂȘtre versionnĂ©, mais souvent ignorĂ©).mon-projet.wpu: Fichier "User". Contient vos paramĂštres locaux (fichiers ouverts, breakpoints). (Doit toujours ĂȘtre dans.gitignore).
"Project Properties" (Propriétés)
C'est la fenĂȘtre de configuration principale de votre projet (Menu Project > Project Properties).
C'est ici que vous définissez les éléments cruciaux :
- Python Executable : Le chemin vers votre interpréteur (vEnv, Conda...).
- Python Path : Le "Sources Root" (oĂč Wing doit chercher les imports).
- Debug/Run Configs : (Main File, options...).
Comme PyCharm, Wing doit savoir quel interpréteur Python utiliser pour l'auto-complétion et le débogage. L'isolation (vEnv) est la clé.
Configuration
Vous configurez l'interpréteur dans Project > Project Properties > Environment.
- Python Executable : Vous pouvez choisir "Default" (systÚme) ou "Custom" (Recommandé).
- vEnv / Virtualenv : Wing détecte les
venv. Vous pouvez pointer l'exécutable vers/chemin/vers/mon-projet/venv/bin/python. - Conda : Wing détecte aussi les environnements Conda si l'exécutable est pointé vers un env Conda.
- Docker / Remote (Pro) : Wing Pro peut utiliser un interpréteur dans un conteneur Docker ou sur un serveur distant (via SSH).
Une fois l'interpréteur configuré, Wing analyse son "Python Path" et ses paquets installés pour l'auto-complétion.
Wing (éditions Pro et Personal) fournit des outils pour gérer pip et les dépendances.
FenĂȘtre "Packages"
L'outil "Packages" (disponible dans le menu Tools) vous offre une interface graphique pour :
- Voir les paquets installés dans l'environnement actif.
- Installer, mettre à jour, ou désinstaller des paquets (
pip install ...). - Gérer les environnements (vEnv, Conda).
requirements.txt
Wing reconnaĂźt requirements.txt.
- Il peut vous proposer d'installer les paquets listés s'ils sont manquants.
- Il peut vous aider à générer un
requirements.txtà partir des paquets installés.
Wing Pro supporte également Poetry et pipenv.
L'éditeur de Wing est puissant et son analyse est aidée par un outil unique : le "Source Assistant".
Auto-complétion & Type Hints
Wing fournit une auto-complétion intelligente (Ctrl+Espace) basée sur l'analyse statique et l'état du débogueur (si en pause).
Il comprend parfaitement les "Type Hints" de Python 3 pour affiner ses suggestions.
"Code Warnings" & PEP 8
Wing analyse votre code en permanence (linting) pour trouver :
- Erreurs de syntaxe.
- Variables non définies.
- Code mort (non utilisé).
- ProblĂšmes de style (PEP 8).
Il s'intĂšgre aussi avec Flake8, Pylint, etc.
Le "Source Assistant"
C'est une fenĂȘtre d'outil contextuelle qui affiche des informations sur le symbole sous votre curseur :
- Documentation (Docstring) de la fonction/classe.
- Signature de la fonction.
- Type inféré de la variable.
- Aide Ă l'importation.
C'est un peu comme avoir un "mini-navigateur" de documentation intégré à l'IDE.
Note : La plupart des outils de refactoring "intelligents" sont réservés à Wing Pro.
Wing fournit des outils "safe" (sécurisés) pour restructurer le code en analysant les dépendances.
| Action | Description |
|---|---|
| Rename | Renomme une variable, fonction ou classe et met Ă jour toutes ses utilisations dans le projet. |
| Extract Function/Method | Sélectionne un bloc de code et le transforme en une nouvelle fonction. |
| Extract Variable | Extrait une expression complexe dans une variable. |
| Move Symbol | Déplace une fonction ou classe dans un autre module (fichier .py). |
C'est la fonctionnalité phare de Wing. Le débogueur est rapide, fiable et trÚs puissant.
Lancement (F5)
Vous lancez le dĂ©bogage via F5 (ou l'icĂŽne "Play" verte). L'exĂ©cution s'arrĂȘtera au premier breakpoint.
Breakpoints (Points d'arrĂȘt)
Cliquez dans la marge pour poser un breakpoint (point rouge).
Types de Breakpoints (Clic droit) :
- Conditionnel : Ne s'arrĂȘte que si une condition est vraie (ex:
x == 100). - Ignoré : Désactive temporairement le breakpoint.
- Hit Count : Ne s'arrĂȘte qu'aprĂšs
npassages.
Stepping (Navigation pas-Ă -pas)
Une fois arrĂȘtĂ©, la fenĂȘtre "Stack Data" s'active. Utilisez les raccourcis de stepping :
F6(Step Over) : Exécute la ligne et passe à la suivante (sans entrer dans les fonctions).F7(Step Into) : Si la ligne est un appel de fonction, entre dans cette fonction.Shift + F7(Step Out) : Sort de la fonction actuelle.
Le "Debug Probe" est l'une des fonctionnalités les plus puissantes de Wing, similaire à la console de debug de PyCharm ou au "Immediate Window" de Visual Studio.
"Stack Data" (Données)
La fenĂȘtre "Stack Data" affiche l'Ă©tat de la pile d'appels (Call Stack) et toutes les variables (locales, globales) Ă l'instant du breakpoint.
Elle permet d'inspecter en profondeur les objets, les dictionnaires, les dataframes Pandas, etc.
Le "Debug Probe"
C'est un onglet (souvent à cÎté de "Stack Data") qui ouvre un Shell Python interactif (REPL) dans le contexte exact de votre breakpoint.
Vous pouvez :
- Inspecter : Taper
ma_variable.proprietepour voir sa valeur. - Modifier : Taper
ma_variable.propriete = "nouvelle_valeur"pour changer l'état du programme *en cours d'exécution*. - Tester : Appeler des fonctions (ex:
ma_fonction(autre_variable)) pour voir ce qu'elles retournent avec les données actuelles.
Note : Fonctionnalités réservées à Wing Pro. C'est la raison principale d'acheter Wing.
Débogage à Distance (Remote Debug)
Wing Pro excelle dans le débogage de code qui ne tourne pas sur votre machine locale (ex: serveur Linux, conteneur Docker).
Fonctionnement :
- Vous configurez Wing Pro pour "écouter" les connexions.
- Vous copiez un petit fichier (
wingdbstub.py) sur le serveur distant. - Vous importez et lancez ce "stub" dans votre application (ex: serveur Django).
- L'application distante se connecte Ă votre IDE Wing local.
- Vous pouvez alors poser des breakpoints, stepper, et utiliser le Debug Probe comme si le code tournait localement.
Débogage Multi-Process & Multi-Thread
Wing Pro gĂšre automatiquement le dĂ©bogage des applications multi-threadĂ©es et peut ĂȘtre configurĂ© pour suivre et dĂ©boguer les sous-processus (multiprocessing) créés par votre application.
Note : Fonctionnalité réservée à Wing Pro.
Wing Pro intĂšgre un "Test Runner" graphique pour Unittest, Pytest, Doctest, et Nose.
Lancement des Tests
L'outil "Testing" (menu Tools) vous permet de :
- Détecter automatiquement les tests dans votre projet.
- Lancer tous les tests, ou seulement un sous-ensemble (fichier, classe, fonction).
- Déboguer un test (lancer un test avec le débogueur attaché).
La FenĂȘtre de RĂ©sultats
Le "Test Runner" affiche :
- Une vue arborescente (Vert/Rouge) des tests passés/échoués.
- Le "stdout" et les "diff" d'assertions.
- Permet de relancer uniquement les tests échoués.
Note : Fonctionnalité réservée à Wing Pro.
Wing Pro inclut un support spécifique pour les frameworks web Python, le rendant compétitif avec PyCharm Pro.
- Django : Auto-complétion pour les templates Django, débogage du serveur
manage.py runserver(y compris le rechargement automatique). - Flask, FastAPI, etc : Support pour le débogage de serveurs web (WSGI/ASGI).
- Templates (Jinja2, etc) : Coloration syntaxique et complétion.
- HTML/CSS/JS : Wing Pro intĂšgre un support basique pour les langages front-end (pas aussi complet que WebStorm, mais suffisant pour les templates).
Note : Fonctionnalité réservée à Wing Pro.
Wing Pro intĂšgre des outils pour les Data Scientists, similaires au "Scientific Mode" de PyCharm.
- Jupyter Notebooks : Support pour l'édition et le débogage de fichiers
.ipynb. - Pandas & NumPy : Le "Stack Data" (vue des variables) du débogueur sait comment afficher les DataFrames Pandas et les arrays NumPy de maniÚre lisible.
- Matplotlib & Seaborn : Wing dĂ©tecte les "plots" (graphiques) et les affiche dans une fenĂȘtre d'outil dĂ©diĂ©e, vous permettant de zoomer et de les sauvegarder.
- Python Shell : La console Python intégrée est parfaite pour l'exploration de données (type REPL).
Wing (Pro et Personal) intĂšgre une interface graphique pour les systĂšmes de gestion de versions.
SystÚmes supportés :
- Git
- Mercurial
- Subversion (SVN)
- Perforce
Outil "Version Control"
La fenĂȘtre d'outil (menu Tools) permet de :
- Commit : Voir les modifications (diff), sélectionner des fichiers, écrire le message de commit.
- History : Voir l'historique (log) du projet ou d'un fichier.
- Push / Pull / Fetch : Gérer les dépÎts distants.
- Branches : Gérer les branches (créer, fusionner).
Python Shell
Wing intÚgre un Shell Python (REPL) qui est automatiquement configuré pour utiliser l'environnement (vEnv) et le Python Path de votre projet.
C'est parfait pour tester rapidement une idée ou une librairie (ex: import requests) sans avoir à créer un fichier.
OS Commands (Terminal)
Wing fournit un outil "OS Commands" qui permet de lancer des commandes shell (bash, PowerShell...) dans l'environnement du projet.
Il permet de configurer et de lancer facilement des outils externes (ex: Linter, Black, MyPy) et de "parser" leur output pour afficher les erreurs dans l'éditeur.
Les raccourcis de Wing sont différents de ceux de JetBrains. (Note : Wing permet de remapper les raccourcis pour imiter VS Code, PyCharm, ou Emacs).
Débogage (Clé)
F5 (Start / Continue Debug) Ctrl + F5 (Start Debug, no stop at first line) F6 (Step Over) F7 (Step Into) Shift + F7 (Step Out) Shift + F5 (Stop Debugger) Ctrl + B (Toggle Breakpoint)
Navigation & Ădition
F4 (Go to Definition) Alt + F7 (Find Usages / Points of Use) F2 (Rename - Refactor) Ctrl + G (Go to Line) Ctrl + F (Find in current file) Ctrl + Shift + F (Find in Files)
