Le développement de plugins QGIS peut parfois être fastidieux : recharger le plugin, déboguer, inspecter l’interface, exécuter des scripts, etc.
C’est là que DevTools pour QGIS (NextGIS) entre en jeu — un ensemble d’outils conçus pour rendre le développement plus fluide, interactif, rapide et ergonomique.
1. Qu’est-ce que DevTools pour QGIS ?
DevTools est un plugin / extension pour QGIS qui propose une palette d’outils de développement intégrés. Il permet :
- d’exécuter des scripts Python directement depuis l’interface QGIS,
- de recharger à chaud (hot reload) votre plugin ou votre code sans redémarrage complet,
- d’inspecter les widgets, layouts, objets Qt, etc.,
- de visualiser les logs, les traces, d’exécuter du code dans un shell QGIS,
- et d’accélérer votre cycle de développement plugin.
Son objectif : réduire le “temps mort” entre une modification de code et son test dans QGIS.
QGIS DevTools est une boîte à outils dédiée au développement et au débogage de plugins QGIS.
Il offre actuellement deux fonctionnalités principales :
- Lancement d’un serveur de débogage (
debugpy
) — permettant de connecter un IDE comme Visual Studio Code, PyCharm, ou VS Codium pour déboguer en direct un plugin sans quitter QGIS. - Accès rapide à la console Python intégrée — pour tester du code, inspecter les objets de QGIS, ou exécuter des portions de code de vos plugins.
D’autres outils sont en préparation (profilage, rechargement de modules, logs étendus).
2. Fonctionnalités principales
Voici quelques capacités offertes par DevTools :
- Console interactive intégrée à QGIS : vous pouvez exécuter des commandes Python dans le contexte de QGIS sans quitter l’interface.
- Reload automatique des modules : après modification, vous pouvez recharger ton plugin sans redémarrer QGIS.
- Inspection des widgets Qt : voir la hiérarchie des objets, leurs propriétés, leurs signaux.
- Profilage / logs / débogage : capture des erreurs, des exceptions, analyses de performance.
- Templates de boilerplate pour créer rapidement un squelette de plugin.
- Raccourcis & menus pour lancer des actions de dev (réexécution, rafraîchissement, etc.).
3. Configuration de QGIS
Installation des dépendances
DevTools utilise debugpy comme bibliothèque sous-jacente, vous devez donc l’installer au préalable.
Vous devez aussi installer VS Code si vous ne l’avez pas déjà. L’extension Python Debugger pour VS Code est nécessaire. Allez dans l’onglet Extensions (Ctrl+Maj+X), recherchez Python Debugger et installez-la. Redémarrez ensuite VS Code.
Sous Windows
- Trouvez le dossier Python de QGIS
- Exemple pour QGIS 3.44 :
C:\Program Files\QGIS 3.44.3\apps\Python39
ouC:\Program Files\QGIS 3.44.3\apps\Python312
selon la version de QGIS.
- Exemple pour QGIS 3.44 :
- Ouvrez l’invite de commande dans ce dossier
- Dans l’Explorateur de fichiers : clic droit + Ouvrir dans le terminal.
- Installez
debugpy
Tapez cette commande :python -m pip install debugpy
Si vous avez plusieurs versions de Python, vous pouvez préciser le chemin complet :"C:\Program Files\QGIS 3.44.3\apps\Python39\python.exe" -m pip install debugpy
Sous Linux / macOS
Même logique :
/path/to/qgis/python3 -m pip install debugpy
Souvent :
/usr/bin/qgis --version
which python3
puis installez debugpy
dans le même environnement.
Vérification
Dans la console Python de QGIS, vous pouvez vérifier :
import debugpy
print(debugpy.__version__)
Si aucune erreur n’apparaît → c’est bon .
4. Installation & configuration
Installation via le dépôt officiel
- Ouvrir Plugins → Installer des extensions
- Rechercher DevTools (ou qgis_devtools)
- Installer et activer le plugin.
Cloner le dépôt GitHub
Si vous voulez la version la plus récente ou contribuer :
git clone https://github.com/nextgis/qgis_devtools.git
Puis vous pouvez copier ce dossier dans votre répertoire des plugins QGIS pour le test local.
Configuration utile
- Vérifiez les dépendances Python si nécessaire (souvent inclus dans le plugin).
- Activez le mode “reload automatique” dans les paramètres du plugin (si disponible).
- Ouvrez la console DevTools (menu ou bouton) pour accéder aux fonctions interactives.
La gestion du plugis installs est accessible via la petite icône en forme d’insecte située dans la partie inférieure droite de l’interface QGIS.

5. Déboguer un plugin QGIS avec VS Code
C’est la fonctionnalité la plus utile pour les développeurs.
Activer le mode débogage
- Lancez QGIS.
- Allez dans Plugins > DevTools > Start Debugpy Server.
- Le plugin vous indique sur quel port le serveur
debugpy
écoute (par défaut :5678
).
Configurer VS Code
Vous verrez le bandeau suivant dans votre fenêtre QGGis

Cliquez sur le bouton Copy launch.json template. Dans votre dossier de développement du plugin, ajoutez un fichier .vscode/launch.json
et collez ce contenu :
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to QGIS",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "127.0.0.1",
"port": 5678
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "C:/Users/nasca/AppData/Roaming/QGIS/QGIS3/profiles/default/python/plugins/<YOUR_PLUGIN_NAME>"
}
],
"justMyCode": true
}
]
}
Dans le code collé, dans l’élément configurations/pathMappings/remoteRoot, remplacez le texte <YOUR_PLUGIN_NAME> par le nom du répertoire du plugin.
Interpreteur
Vérifiez que l’interpreteur configuré sur VS Code est bien la version pythons de votre installation QGis. L’interpeteur en cours apparaît en bas , à droite , de la fenêtre VS Code

S’il ne correspond pas, cliquez dessus pour ouvrir la fen^tre de conficuration et rentrez le path de votre version python QGis.
Revenez à QGIS et appuyez,si c’est nécessaire, sur le bouton Démarrer dans le panneau DevTools.

Dans VS Code, passez à l’onglet Exécuter et déboguer (Ctrl + Maj + D) et cliquez sur “Attach to QGIS”.
Vous pouvez maintenant :
- Mettre des points d’arrêt (breakpoints) dans votre code,
- Inspecter les variables et objets QGIS en temps réel,
- Reprendre l’exécution ligne par ligne.
Vous lancez l’exécution du plugin dans QGis et lorsqu’un point d’arrêt est rencontyré, l’exécution se fige et le contrôle est passé à VS Code.

Astuce
Si vous travaillez sur plusieurs projets QGIS, pensez à changer le port utilisé par debugpy
(dans le menu DevTools) pour éviter les conflits.
Et pour éviter d’avoir à retaper vos commandes Python, activez aussi le panneau Console Python intégré de QGIS.
Astuces & bonnes pratiques
- Pense à nettoyer les caches de Python (
.pyc
), surtout en reload multiple. - Ne mets pas la console DevTools dans le plugin final destiné aux utilisateurs — elle est pour le développeur.
- Utilise des noms clairs pour les modules, pour éviter les conflits en reload.
- Pour les tests, confronte ton plugin rechargé avec un redémarrage complet pour s’assurer qu’il fonctionne aussi “à froid”.
- Combine DevTools avec un bon IDE (VSCode, PyCharm) : tu modifies dans l’IDE, tu relances via DevTools.
6. Comparaison avec d’autres workflows
Méthode | Avantages | Limites |
---|---|---|
Redémarrage QGIS complet | Simple et “propre” | Très lent pour grosses extensions |
Utiliser reload() dans le code |
Rapide pour modules simples | Risque de fuites, références orphelines |
DevTools pour QGIS | Rechargement à chaud, console interactive, inspection facile | À utiliser uniquement en dev, pas en production |
DevTools se positionne comme le meilleur choix pour le cycle de développement rapide.
7. Conclusion & perspectives
DevTools pour QGIS est un outil précieux pour les développeurs de plugins, permettant de réduire drastiquement les temps de test et de débogue.
Il facilite l’itération rapide, l’exploration interactive et un meilleur aperçu des composants Qt.
Un outil simple mais précieux
Même s’il ne fait “que” lancer un serveur de débogage, QGIS DevTools change complètement la manière de développer des plugins QGIS.
Il permet de gagner du temps, de comprendre plus vite les erreurs, et de tester des scénarios complexes en direct dans l’environnement QGIS réel.
Liens utiles
- Page du plugin sur QGIS.org : https://plugins.qgis.org/plugins/devtools
- Code source (GitHub) : https://github.com/nextgis/qgis_devtools
- Documentation officielle : https://nextgis.com/devtools-for-qgis/