Créer un environnement virtuel Python pour le développement de plugin QGIS avec VS Code sous Windows#
Date de publication initiale : 25 novembre 2024
Introduction#
Tout ceux qui s'y sont frottés le savent, configurer son environnement Python, PyQGIS et PyQt sous Windows pour développer des plugins pour QGIS est un réel parcours du combattant. À la fin, on est souvent perdant...
Et bien, plus maintenant ! Après avoir fouillé les archives d'internet et exploré les pistes fournies par Julien, voici l'une des méthodes permettant d'avoir toutes (ou presque) les autocomplétions d'objets et méthodes PyQGIS, PyQt, etc. dans VS Code.
Création de l'environnement virtuel#
Je suppose dans la suite que vous avez installé QGIS dans le répertoire C:\OSGeo4W
(la procédure est identique que QGIS soit installé via l'installateur réseau OSGeo4W ou via le package MSI, les chemins indiqués dans la suite de l'article sont simplement à adapter selon votre installation).
-
Ouvrir une console OSGeo4W Shell et naviguer jusqu'à l'emplacement où vous souhaitez créer l'environnement virtuel.
Par exemple, un template de plugin fraîchement créé via l'outil QGIS Plugin Templater. -
Exécuter les commandes suivantes :
Création d'un environnement virtuel dans l'OSGeo4W ShellC:\OSGeo4W\bin\python-qgis.bat -m venv --system-site-packages .venv C:\OSGeo4W\bin\python-qgis.bat -c "import pathlib;import qgis;print(str((pathlib.Path(qgis.__file__)/'../..').resolve()))" > .venv\qgis.pth
L'option
--system-site-packages
permet à l'environnement virtuel créé d'hériter des librairies spécifiques à l'environnement Python dans QGIS. -
Pour que VSCode reconnaisse les imports
processing
, ajouter la ligne suivante dans le fichier.venv\qgis.pth
:
C:\OSGeo4W\apps\qgis\python\plugins
Votre fichier devrait ressembler à ça :
Veiller à ce que l'encodage du fichier
.venv\qgis.pth
soit bien en UTF-8. -
Créer le fichier
sitecustomize.py
dans le dossier.venv\Lib\site-packages
avec le contenu suivant : -
Dans le fichier
.venv\pyvenv.cfg
, modifier les occurencesC:\OSGeo4W\bin
enC:\OSGeo4W\apps\Python312
:
Dans VS Code#
Si vous ouvrez VS Code dans le dossier où vous venez de créer l'environnement virtuel, VS Code détectera automatiquement l'environnement (sinon installer l'extension VS Code Python) et lorsque vous taperez des bouts de code, VS Code vous proposera les objets ou méthodes PyQGIS.
Pour également avoir l'ensemble des complétions associées à PyQt, il semble être nécessaire d'installer une librairie Python supplémentaire PyQt5-stubs
(certes qui n'est plus maintenue mais qui a le mérite de fonctionner).
Dans le terminal VS Code, exécuter la commande :
Tout ça pour avoir un code coloré !
Auteur·ice#
Nicolas Godet#
Ingénieur hydraulicien de formation, les SIG et QGIS font parti de mon quotidien tout comme les équations de Navier-Stockes, fameuses équations aux dérivées partielles non linéaires qui décrivent le mouvement des fluides newtoniens.
Esprit bidouilleur, je me suis rapidement tourné vers Python et PyQGIS pour le développement de scripts métier d'automatisation de traitement de résultats de modèle numérique puis le développement et maintien de plugins QGIS.
Licence Beerware #
Ce contenu est sous licence Beerware (Révision 42).
Les médias d'illustration sont potentiellement soumis à d'autres conditions d'utilisation.
Réutiliser, citer l'article
Tant que vous conservez cette licence :
- vous pouvez faire ce que vous voulez de ce contenu
- si vous rencontrez l'auteur/e un jour et que vous pensez que ce contenu vaut le coup, vous pouvez lui payer un coup en retour
Citer cet article :
"Créer un environnement virtuel Python pour le développement de plugin QGIS avec VS Code sous Windows" publié par Nicolas Godet sur Geotribu - Source : https://geotribu.fr/articles/2024/2024-11-25_pyqgis_environnement_dev_windows/
Commentaires
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.
Ce contenu est sous licence Beerware