﻿{"id":15763,"date":"2025-10-16T10:00:00","date_gmt":"2025-10-16T08:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=15763"},"modified":"2025-12-22T10:14:36","modified_gmt":"2025-12-22T09:14:36","slug":"qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/","title":{"rendered":"QGIS DevTools \u2014 D\u00e9boguer et d\u00e9velopper ses plugins plus efficacement"},"content":{"rendered":"\n<p>Le d\u00e9veloppement de plugins QGIS peut parfois \u00eatre fastidieux : recharger le plugin, d\u00e9boguer, inspecter l\u2019interface, ex\u00e9cuter des scripts, etc.<br>C\u2019est l\u00e0 que <strong>DevTools pour QGIS<\/strong> (NextGIS) entre en jeu \u2014 un ensemble d\u2019outils con\u00e7us pour rendre le d\u00e9veloppement plus fluide, interactif, rapide et ergonomique.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenu <\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#1_Quest-ce_que_DevTools_pour_QGIS\" >1. Qu\u2019est-ce que DevTools pour QGIS ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#2_Fonctionnalites_principales\" >2. Fonctionnalit\u00e9s principales<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#3_Configuration_de_QGIS\" >3. Configuration de QGIS<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Installation_des_dependances\" >Installation des d\u00e9pendances<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Sous_Windows\" >Sous Windows<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Sous_Linux_macOS\" >Sous Linux \/ macOS<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Verification\" >V\u00e9rification<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#4_Installation_configuration\" >4. Installation &amp; configuration<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Installation_via_le_depot_officiel\" >Installation via le d\u00e9p\u00f4t officiel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Cloner_le_depot_GitHub\" >Cloner le d\u00e9p\u00f4t GitHub<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Configuration_utile\" >Configuration utile<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#5_Deboguer_un_plugin_QGIS_avec_VS_Code\" >5. D\u00e9boguer un plugin QGIS avec VS Code<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Activer_le_mode_debogage\" >Activer le mode d\u00e9bogage<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Configurer_VS_Code\" >Configurer VS Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Interpreteur\" >Interpreteur<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Astuce\" >Astuce<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Astuces_bonnes_pratiques\" >Astuces &amp; bonnes pratiques<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#6_Comparaison_avec_dautres_workflows\" >6. Comparaison avec d\u2019autres workflows<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#7_Conclusion_perspectives\" >7. Conclusion &amp; perspectives<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Un_outil_simple_mais_precieux\" >Un outil simple mais pr\u00e9cieux<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/#Liens_utiles\" >Liens utiles<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Quest-ce_que_DevTools_pour_QGIS\"><\/span>1. Qu\u2019est-ce que DevTools pour QGIS ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>DevTools est un plugin \/ extension pour QGIS qui propose une palette d\u2019outils de d\u00e9veloppement int\u00e9gr\u00e9s. Il permet :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>d\u2019ex\u00e9cuter des scripts Python directement depuis l\u2019interface QGIS,<\/li>\n\n\n\n<li>de recharger \u00e0 chaud (hot reload) votre plugin ou votre code sans red\u00e9marrage complet,<\/li>\n\n\n\n<li>d\u2019inspecter les widgets, layouts, objets Qt, etc.,<\/li>\n\n\n\n<li>de visualiser les logs, les traces, d\u2019ex\u00e9cuter du code dans un shell QGIS,<\/li>\n\n\n\n<li>et d\u2019acc\u00e9l\u00e9rer votre cycle de d\u00e9veloppement plugin.<\/li>\n<\/ul>\n\n\n\n<p>Son objectif : r\u00e9duire le \u201ctemps mort\u201d entre une modification de code et son test dans QGIS.<\/p>\n\n\n\n<p><strong>QGIS DevTools<\/strong> est une bo\u00eete \u00e0 outils d\u00e9di\u00e9e au <strong>d\u00e9veloppement et au d\u00e9bogage de plugins QGIS<\/strong>.<br>Il offre actuellement deux fonctionnalit\u00e9s principales :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Lancement d\u2019un serveur de d\u00e9bogage (<code>debugpy<\/code>)<\/strong> \u2014 permettant de connecter un IDE comme <strong>Visual Studio Code<\/strong>, <strong>PyCharm<\/strong>, ou <strong>VS Codium<\/strong> pour d\u00e9boguer en direct un plugin sans quitter QGIS.<\/li>\n\n\n\n<li><strong>Acc\u00e8s rapide \u00e0 la console Python int\u00e9gr\u00e9e<\/strong> \u2014 pour tester du code, inspecter les objets de QGIS, ou ex\u00e9cuter des portions de code de vos plugins.<\/li>\n<\/ol>\n\n\n\n<p>D\u2019autres outils sont en pr\u00e9paration (profilage, rechargement de modules, logs \u00e9tendus).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Fonctionnalites_principales\"><\/span>2. Fonctionnalit\u00e9s principales<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Voici quelques capacit\u00e9s offertes par DevTools :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Console interactive<\/strong> int\u00e9gr\u00e9e \u00e0 QGIS : vous pouvez ex\u00e9cuter des commandes Python dans le contexte de QGIS sans quitter l\u2019interface.<\/li>\n\n\n\n<li><strong>Reload automatique des modules<\/strong> : apr\u00e8s modification, vous pouvez recharger ton plugin sans red\u00e9marrer QGIS.<\/li>\n\n\n\n<li><strong>Inspection des widgets Qt<\/strong> : voir la hi\u00e9rarchie des objets, leurs propri\u00e9t\u00e9s, leurs signaux.<\/li>\n\n\n\n<li><strong>Profilage \/ logs \/ d\u00e9bogage<\/strong> : capture des erreurs, des exceptions, analyses de performance.<\/li>\n\n\n\n<li><strong>Templates de boilerplate<\/strong> pour cr\u00e9er rapidement un squelette de plugin.<\/li>\n\n\n\n<li><strong>Raccourcis &amp; menus<\/strong> pour lancer des actions de dev (r\u00e9ex\u00e9cution, rafra\u00eechissement, etc.).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Configuration_de_QGIS\"><\/span>3. Configuration de QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Installation_des_dependances\"><\/span>Installation des d\u00e9pendances<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>DevTools utilise debugpy comme biblioth\u00e8que sous-jacente, vous devez donc l&rsquo;installer au pr\u00e9alable.<br>Vous devez aussi installer VS Code si vous ne l&rsquo;avez pas d\u00e9j\u00e0. L&rsquo;extension Python Debugger pour VS Code est n\u00e9cessaire. Allez dans l&rsquo;onglet Extensions (Ctrl+Maj+X), recherchez Python Debugger et installez-la. Red\u00e9marrez ensuite VS Code.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Sous_Windows\"><\/span>Sous Windows<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Trouvez le dossier Python de QGIS<\/strong>\n<ul class=\"wp-block-list\">\n<li>Exemple pour QGIS 3.44 : <code>C:\\Program Files\\QGIS 3.44.3\\apps\\Python39<\/code> ou <code>C:\\Program Files\\QGIS 3.44.3\\apps\\Python312<\/code> selon la version de QGIS.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Ouvrez l\u2019invite de commande dans ce dossier<\/strong>\n<ul class=\"wp-block-list\">\n<li>Dans l\u2019Explorateur de fichiers : clic droit + <em>Ouvrir dans le terminal<\/em>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Installez <code>debugpy<\/code><\/strong><br>Tapez cette commande : <br><code>python -m pip install debugpy<\/code> <br>Si vous avez plusieurs versions de Python, vous pouvez pr\u00e9ciser le chemin complet : <br><code>\"C:\\Program Files\\QGIS 3.44.3\\apps\\Python39\\python.exe\" -m pip install debugpy<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Sous_Linux_macOS\"><\/span>Sous Linux \/ macOS<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>M\u00eame logique :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/path\/to\/qgis\/python3 -m pip install debugpy\n<\/code><\/pre>\n\n\n\n<p>Souvent :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/usr\/bin\/qgis --version\nwhich python3\n<\/code><\/pre>\n\n\n\n<p>puis installez <code>debugpy<\/code> dans le m\u00eame environnement.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Verification\"><\/span>V\u00e9rification<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Dans la <strong>console Python de QGIS<\/strong>, vous pouvez  v\u00e9rifier :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import debugpy\nprint(debugpy.__version__)\n<\/code><\/pre>\n\n\n\n<p>Si aucune erreur n\u2019appara\u00eet \u2192 c\u2019est bon .<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_Installation_configuration\"><\/span>4. Installation &amp; configuration<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Installation_via_le_depot_officiel\"><\/span>Installation via le d\u00e9p\u00f4t officiel<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ouvrir <strong>Plugins \u2192 Installer des extensions<\/strong><\/li>\n\n\n\n<li>Rechercher <em>DevTools<\/em> (ou <em>qgis_devtools<\/em>)<\/li>\n\n\n\n<li>Installer et <strong>activer<\/strong> le plugin.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cloner_le_depot_GitHub\"><\/span>Cloner le d\u00e9p\u00f4t GitHub<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Si vous voulez la version la plus r\u00e9cente ou contribuer :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/nextgis\/qgis_devtools.git\n<\/code><\/pre>\n\n\n\n<p>Puis vous pouvez copier ce dossier dans votre r\u00e9pertoire des plugins QGIS pour le test local.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Configuration_utile\"><\/span>Configuration utile<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>V\u00e9rifiez les d\u00e9pendances Python si n\u00e9cessaire (souvent inclus dans le plugin).<\/li>\n\n\n\n<li>Activez le mode \u201creload automatique\u201d dans les param\u00e8tres du plugin (si disponible).<\/li>\n\n\n\n<li>Ouvrez la console DevTools (menu ou bouton) pour acc\u00e9der aux fonctions interactives.<\/li>\n<\/ul>\n\n\n\n<p>La gestion du plugis installs est accessible via la petite ic\u00f4ne en forme d&rsquo;insecte situ\u00e9e dans la partie inf\u00e9rieure droite de l&rsquo;interface QGIS.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/devtools_icon.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"219\" height=\"146\" data-attachment-id=\"15764\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/devtools_icon\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/devtools_icon.png?fit=219%2C146&amp;ssl=1\" data-orig-size=\"219,146\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"devtools_icon\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/devtools_icon.png?fit=219%2C146&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/devtools_icon.png?resize=219%2C146&#038;ssl=1\" alt=\"\" class=\"wp-image-15764\"\/><\/a><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_Deboguer_un_plugin_QGIS_avec_VS_Code\"><\/span>5. D\u00e9boguer un plugin QGIS avec VS Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>C\u2019est la fonctionnalit\u00e9 la plus utile pour les d\u00e9veloppeurs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Activer_le_mode_debogage\"><\/span>Activer le mode d\u00e9bogage<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lancez QGIS.<\/li>\n\n\n\n<li>Allez dans <strong>Plugins &gt; DevTools &gt; Start Debugpy Server<\/strong>.<\/li>\n\n\n\n<li>Le plugin vous indique sur quel port le serveur <code>debugpy<\/code> \u00e9coute (par d\u00e9faut : <code>5678<\/code>).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Configurer_VS_Code\"><\/span>Configurer VS Code<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Vous verrez le bandeau suivant dans votre fen\u00eatre QGGis<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"18\" data-attachment-id=\"15765\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/launch_json\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?fit=2560%2C73&amp;ssl=1\" data-orig-size=\"2560,73\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"launch_json\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?fit=640%2C18&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json.jpg?resize=640%2C18&#038;ssl=1\" alt=\"\" class=\"wp-image-15765\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?resize=1024%2C29&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?resize=300%2C9&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?resize=768%2C22&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?resize=1536%2C44&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?resize=2048%2C59&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/launch_json-scaled.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Cliquez sur le bouton <strong><em>Copy launch.json template<\/em><\/strong>. Dans votre dossier de d\u00e9veloppement du plugin, ajoutez un fichier <code>.vscode\/launch.json<\/code> et collez ce contenu :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><br>{<br>    \"version\": \"0.2.0\",<br>    \"configurations\": [<br>        {<br>            \"name\": \"Attach to QGIS\",<br>            \"type\": \"debugpy\",<br>            \"request\": \"attach\",<br>            \"connect\": {<br>                \"host\": \"127.0.0.1\",<br>                \"port\": 5678<br>            },<br>            \"pathMappings\": [<br>                {<br>                    \"localRoot\": \"${workspaceFolder}\",<br>                    \"remoteRoot\": \"C:\/Users\/nasca\/AppData\/Roaming\/QGIS\/QGIS3\/profiles\/default\/python\/plugins\/&lt;YOUR_PLUGIN_NAME&gt;\"<br>                }<br>            ],<br>            \"justMyCode\": true<br>        }<br>    ]<br>}<br><br><\/pre>\n\n\n\n<p>Dans le code coll\u00e9, dans l&rsquo;\u00e9l\u00e9ment configurations\/pathMappings\/remoteRoot, remplacez le texte &lt;YOUR_PLUGIN_NAME&gt; par le nom du r\u00e9pertoire du plugin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Interpreteur\"><\/span>Interpreteur<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>V\u00e9rifiez que l&rsquo;interpreteur configur\u00e9 sur VS Code est bien la version pythons de votre installation QGis. L&rsquo;interpeteur en cours appara\u00eet en bas , \u00e0 droite , de la fen\u00eatre VS Code<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"340\" data-attachment-id=\"15802\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/interpretervscode\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?fit=2560%2C1360&amp;ssl=1\" data-orig-size=\"2560,1360\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"interpreterVSCode\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?fit=640%2C340&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode.jpg?resize=640%2C340&#038;ssl=1\" alt=\"\" class=\"wp-image-15802\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?resize=1024%2C544&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?resize=300%2C159&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?resize=768%2C408&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?resize=1536%2C816&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?resize=2048%2C1088&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/interpreterVSCode-scaled.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>S&rsquo;il ne correspond pas, cliquez dessus pour ouvrir la fen\u00eatre de configuration et rentrez le path de votre version python QGis.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Revenez \u00e0 QGIS et appuyez,si c&rsquo;est n\u00e9cessaire, sur le bouton D\u00e9marrer dans le panneau DevTools.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/start_button.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"201\" height=\"119\" data-attachment-id=\"15766\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/start_button\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/start_button.png?fit=201%2C119&amp;ssl=1\" data-orig-size=\"201,119\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"start_button\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/start_button.png?fit=201%2C119&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/start_button.png?resize=201%2C119&#038;ssl=1\" alt=\"\" class=\"wp-image-15766\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>Dans VS Code, passez \u00e0 l&rsquo;onglet Ex\u00e9cuter et d\u00e9boguer (Ctrl + Maj + D) et cliquez sur <strong>\u201cAttach to QGIS\u201d<\/strong>.<\/p>\n\n\n\n<p>Vous pouvez maintenant :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mettre des <strong>points d\u2019arr\u00eat (breakpoints)<\/strong> dans votre code,<\/li>\n\n\n\n<li>Inspecter les <strong>variables<\/strong> et <strong>objets QGIS<\/strong> en temps r\u00e9el,<\/li>\n\n\n\n<li>Reprendre l\u2019ex\u00e9cution ligne par ligne.<\/li>\n<\/ul>\n\n\n\n<p>Vous lancez l&rsquo;ex\u00e9cution du plugin dans QGis et lorsqu&rsquo;un point d&rsquo;arr\u00eat est rencontr\u00e9, l&rsquo;ex\u00e9cution se fige et le contr\u00f4le est pass\u00e9 \u00e0 VS Code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"340\" data-attachment-id=\"15767\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/qgis-devtools-deboguer-et-developper-ses-plugins-plus-efficacement\/vscode\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?fit=2560%2C1360&amp;ssl=1\" data-orig-size=\"2560,1360\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"vscode\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?fit=640%2C340&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode.jpg?resize=640%2C340&#038;ssl=1\" alt=\"\" class=\"wp-image-15767\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?resize=1024%2C544&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?resize=300%2C159&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?resize=768%2C408&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?resize=1536%2C816&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?resize=2048%2C1088&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/vscode-scaled.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Astuce\"><\/span>Astuce<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Si vous travaillez sur plusieurs projets QGIS, pensez \u00e0 changer le port utilis\u00e9 par <code>debugpy<\/code> (dans le menu DevTools) pour \u00e9viter les conflits.<\/p>\n\n\n\n<p>Et pour \u00e9viter d\u2019avoir \u00e0 retaper vos commandes Python, activez aussi le <strong>panneau Console Python<\/strong> int\u00e9gr\u00e9 de QGIS.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Astuces_bonnes_pratiques\"><\/span>Astuces &amp; bonnes pratiques<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pense \u00e0 <strong>nettoyer les caches<\/strong> de Python (<code>.pyc<\/code>), surtout en reload multiple.<\/li>\n\n\n\n<li>Ne mets pas la console DevTools dans le plugin final destin\u00e9 aux utilisateurs \u2014 elle est pour le d\u00e9veloppeur.<\/li>\n\n\n\n<li>Utilise des noms clairs pour les modules, pour \u00e9viter les conflits en reload.<\/li>\n\n\n\n<li>Pour les tests, confronte ton plugin recharg\u00e9 avec un red\u00e9marrage complet pour s\u2019assurer qu\u2019il fonctionne aussi \u201c\u00e0 froid\u201d.<\/li>\n\n\n\n<li>Combine DevTools avec un bon IDE (VSCode, PyCharm) : tu modifies dans l\u2019IDE, tu relances via DevTools.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6_Comparaison_avec_dautres_workflows\"><\/span>6. Comparaison avec d\u2019autres workflows<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>M\u00e9thode<\/th><th>Avantages<\/th><th>Limites<\/th><\/tr><\/thead><tbody><tr><td>Red\u00e9marrage QGIS complet<\/td><td>Simple et \u201cpropre\u201d<\/td><td>Tr\u00e8s lent pour grosses extensions<\/td><\/tr><tr><td>Utiliser <code>reload()<\/code> dans le code<\/td><td>Rapide pour modules simples<\/td><td>Risque de fuites, r\u00e9f\u00e9rences orphelines<\/td><\/tr><tr><td>DevTools pour QGIS<\/td><td>Rechargement \u00e0 chaud, console interactive, inspection facile<\/td><td>\u00c0 utiliser uniquement en dev, pas en production<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>DevTools se positionne comme le meilleur choix pour le <strong>cycle de d\u00e9veloppement rapide<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7_Conclusion_perspectives\"><\/span>7. Conclusion &amp; perspectives<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>DevTools pour QGIS est un outil pr\u00e9cieux pour les d\u00e9veloppeurs de plugins, permettant de r\u00e9duire drastiquement les temps de test et de d\u00e9bogue.<br>Il facilite l\u2019<strong>it\u00e9ration rapide<\/strong>, l\u2019<strong>exploration interactive<\/strong> et un meilleur aper\u00e7u des composants Qt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Un_outil_simple_mais_precieux\"><\/span>Un outil simple mais pr\u00e9cieux<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>M\u00eame s\u2019il ne fait \u201cque\u201d lancer un serveur de d\u00e9bogage, <strong>QGIS DevTools<\/strong> change compl\u00e8tement la mani\u00e8re de d\u00e9velopper des plugins QGIS.<br>Il permet de <strong>gagner du temps<\/strong>, de <strong>comprendre plus vite les erreurs<\/strong>, et de <strong>tester des sc\u00e9narios complexes en direct<\/strong> dans l\u2019environnement QGIS r\u00e9el.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Liens_utiles\"><\/span>Liens utiles<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Page du plugin sur QGIS.org<\/strong> : <a>https:\/\/plugins.qgis.org\/plugins\/devtools<\/a><\/li>\n\n\n\n<li><strong>Code source (GitHub)<\/strong> : <a href=\"https:\/\/github.com\/nextgis\/qgis_devtools\">https:\/\/github.com\/nextgis\/qgis_devtools<\/a><\/li>\n\n\n\n<li><strong>Documentation officielle<\/strong> : <a href=\"https:\/\/nextgis.com\/devtools-for-qgis\/\">https:\/\/nextgis.com\/devtools-for-qgis\/<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Le d\u00e9veloppement de plugins QGIS peut parfois \u00eatre fastidieux : recharger le plugin, d\u00e9boguer, inspecter l\u2019interface, ex\u00e9cuter des scripts, etc.C\u2019est l\u00e0 que DevTools pour QGIS (NextGIS) entre en jeu \u2014 un ensemble d\u2019outils con\u00e7us pour rendre&hellip;<\/p>\n","protected":false},"author":1,"featured_media":15768,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1945,62],"tags":[3769,3771,279,131,58,3773],"class_list":["post-15763","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pluigin","category-qgis-2","tag-developpement","tag-devtools","tag-plugin","tag-python","tag-qgis","tag-vs-code"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/devtools.jpg?fit=500%2C375&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-46f","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/15763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=15763"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/15763\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/15768"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=15763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=15763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=15763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}