Script Python / QGIS qui segfault depuis mise à jour vers QGIS 2.10

Dans un précédent petit article, je donnais un exemple de script Python utilisant QGIS depuis la console sans l’ouvrir graphiquement.

Or, suite à une mise à jour de QGIS vers la version 2.10, tous mes scripts basés sur cet exemple ont cessé de fonctionner. En effet, une segmentation fault (erreur de segmentation) se produisait systématiquement lors de l’appel de la fonction getFeatures().

Après une petite recherche, j’ai trouvé la moitié de la solution ici et l’autre moitié ici.

Il fallait rajouter en début de script les deux lignes suivantes :

from PyQt4.Qt import *
app = QApplication(sys.argv)

Je ne sais pas pourquoi, avec les versions précédentes de QGIS, cela fonctionnait sans.

Mon article initial est mis à jour pour tenir compte de cet ajout. Mais je préfère faire figurer ces explications détaillées à part, dans le présent article. D’une part, cela évite d’alourdir l’autre inutilement, et d’autre part j’espère ainsi qu’une personne rencontrant le même problème que moi pourra trouver la solution plus facilement ici.

Ce contenu a été publié dans Astuces, Informatique. Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à Script Python / QGIS qui segfault depuis mise à jour vers QGIS 2.10

  1. Saliha dit :

    Bonjour,
    Je vous remercie pour l’exemple, c’est ce que je cherchais ( utiliser qgis dans des programmes python pour être intégrer dans Flask). J’ai essayé votre exemple, mais je suis bloquée car j’ai les erreurs sur les 2 premières lignes de votre programme :
    from qgis.core import *
    ImportError: No module named ‘qgis’

    from qgis.gui import *
    ImportError: No module named ‘qgis’

    Je vous informe que j’utilise Ubuntu16.04 et que j’ai déjà eu ces erreur en suivant le manuel de qgis à propos de ce sujet.

    Est ce quelqu’un a une solution pour mon problème? Merci.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>