La communauté QGIS est en train de préparer la migration vers QGIS 3.x, dont il faut anticiper dès maintenant l’impact.
La migration vers QGIS 3 devrait permettre :
- de basculer sur Qt5, qui corrigera pas mal de bugs, et ouvrira aussi de nouveaux outils comme une librairie de Graphe très complète.
- migrer vers Python 3
- monter de version PyQt4, la glue entre python et Qt..
Comme pour tous les autres SIG du marché (rappelez vous les migration Arcview, ArcGIS), les impacts seront relativement importants, et au premier chef, vos plugins python nécessiteront d’être réécrits… Pas de panique!

La transition pour python peut être anticipée, puisqu’il est possible dès maintenant de reprendre le code de vos plugins pour les rendre compatible pour python 2 et python 3 (et donc toutes les version 2 et 3 de QGIS).
Pour nous aider à commencer tranquillement ce travail au fil de l’eau, Matthias Khun vient de publier un premier tutoriel:
http://www.opengis.ch/2016/03/23/prepare-your-plugins-for-qgis-3/
En résumé:
-
N’importez pas tous les modules sur mode « import * »
from PyQt4.QtCore import *
from PyQt4.QtCore import (QDate,QTime,QDateTime,QVariant)
-
Ne convertissez en string que lorsque c’est nécessaire
Je vous laisse lire l’explication détaillée dans le blog. Les changements entre python 2 et 3 concernent majoritairement la gestion du texte, qui sera bieeeen plus simple après.
-
Rédigez des test unitaires
Ca devrait être un réflexe pour tout code de nos jours. Les développeurs de l’extreme programing considère qu’un code sans test est un code cassé. Avec des tests, on développe plus vite aussi, on débuggue plus vite, on ne régresse plus..
-
tout savoir sur les conversions Python2 to Python3
http://python3porting.com/noconv.html , la base.
Pour nous francophones, je ne saurais que vous conseiller d’écumer le blog de Sam et Max (ne vous trompez pas de rubrique quand même 🙂 ):
là http://sametmax.com/ca-y-est-on-peut-coder-en-python-3/
et aussi là: http://sametmax.com/python-3-est-fait-pour-les-nouveaux-venus/
et plus généralement, tout ça: http://sametmax.com/passage-a-python-3/
Ya plus qu’à. Il y a quand même plusieurs centaines de plugins pour QGIS, mais on a pas énormément de plugin à gérer chacun individuellement.
Et si vous commencez un plugin maintenant, développez directement en python 3 compatible avec la librairie « future », ça vous évitera de recommencer dans un an et vous pourrez briller en société ou sur le marché du travail.