Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 3 sur 3
  1. #1

    Date d'inscription
    mars 2015
    Messages
    27

    Par défaut Initialiser une application PyQGIS

    Bonjour à tous,
    J'aimerai créer une pseudo application PyQGISpour pouvoir tester mes fonctions PyQGIS sans avoir à passer par la console QGIS.
    Mais je me prend une vilaine erreur de segmentation au niveau du QgsApplication.initQgis()
    Je précise que j'ai bien mis à jour le pythonpath avec export PYTHONPATH=/usr/share/qgis/python.

    Any idea?


    Le pypy:

    #export PYTHONPATH=/usr/share/qgis/python

    from qgis.core import QgsApplication
    from qgis.core import *
    import qgis.utils
    import sys


    sys.path.append('/usr/share/qgis/python')
    QgsApplication.setPrefixPath('/usr', True)
    app = QgsApplication([], False)
    print QgsApplication.showSettings()
    # load providers

    QgsApplication.initQgis()




    layer = QgsVectorLayer("/media/sf_shared_VM/testINTERE/monshape.shp", "mylayer", "ogr")

    if not layer.isValid():
    print "Layer failed to load!"


    QgsApplication.exitQgis()




    la sortie:

    usr@linux-noag:~/Documents> export PYTHONPATH=/usr/share/qgis/python
    usr@linux-noag:~/Documents> python pyqgisconsole.py
    Application state:
    QGIS_PREFIX_PATH env var:
    Prefix: /usr
    Plugin Path: /usr/lib64/qgis
    Package Data Path: /usr/share/qgis
    Active Theme Name:
    Active Theme Path: /home/usr/.qgis2///themes//icons/
    Default Theme Path: :/images/themes/default/
    SVG Search Paths: /usr/share/qgis/svg/
    /home/usr/.qgis2//svg/
    User DB Path: /usr/share/qgis/resources/qgis.db
    Auth DB Path: /home/usr/.qgis2//qgis-auth.db

    Erreur de segmentation (core dumped)
    Dernière modification par gene ; 04/04/2017 à 18h52.

  2. #2

    Date d'inscription
    mai 2009
    Emploi
    Géomaticien développeur.
    Organisme
    Clermont Auvergne Métropole
    Messages
    66

    Par défaut Re : Initialiser une application PyQGIS

    Il manque l'import pyqt il me semble.
    fait un tour sur stackoverflow gis : voici la question que j'ai posé il y a un moment https://gis.stackexchange.com/questi...ndalone-script.
    C'est pour joué avec les fonctions de processing mais je pense que l'idée est la même si tu veux joué avec les classes pyqgis.
    Je post ici le code modifié par rapport à ce que tu souhaite faire :

    def main():
    layer = QgsVectorLayer('/path/to/file.shp', "BAT","ogr")
    QgsMapLayerRegistry.instance().addMapLayers([layer])

    # Tester la couche
    try :
    layer.isValid()
    print "La couche est valide"

    except:
    print "La couche n'est pas valid"

    #Check the QgsMapLayerRegistry for the layers
    print QgsMapLayerRegistry.instance().mapLayers()
    # Check if they are valid
    print layer.isValid()

    if __name__=="__main__":
    import sys
    from qgis.core import *
    from PyQt4.QtGui import *
    app = QApplication([])
    QgsApplication.setPrefixPath("/usr", True)
    QgsApplication.initQgis()

    sys.path.append('home/user/.qgis2/python/plugins')
    sys.path.append('/usr/share/qgis/python')

    print QgsApplication.showSettings()

    # try to load processing
    try:
    from processing.core.Processing import Processing
    Processing.initialize()

    except:
    print "Impossible d'importer 'processing'"

    main()

    QgsApplication.exitQgis()


    Si le code te convient, un upvote sur la discussion stackoverflow serait le bienvenu
    Dernière modification par lewisvillierme ; 05/04/2017 à 11h39. Motif: ajout du print QgsApplication

  3. #3

    Date d'inscription
    mars 2015
    Messages
    27

    Par défaut Re : Initialiser une application PyQGIS

    merci pour ta réponse qui fonctionne! Il semblerait que pour faire fonctionner des applications de ce genre, il faille définir une QApplication en plus de la QgsApplication. C'est quand même balo de devoir importer la lib graphique pour faire de la console, mais bon.

    Tu as bien mérité ton plussoiement sur stackoverflow gis

 

 

Discussions similaires

  1. [Formation] Cours pyQGIS
    Par aurelie.guegan.15 dans le forum Formations / Stages / Emplois / Evènements
    Réponses: 11
    Dernier message: 27/11/2017, 10h16
  2. [QGIS 2.x] API PyQGIS
    Par calito dans le forum Assistance et Programmation
    Réponses: 1
    Dernier message: 09/03/2016, 03h12
  3. Réponses: 1
    Dernier message: 22/05/2012, 15h38
  4. [ArcGIS Server 9.x] Flex : Initialiser un Widget
    Par Lucie48 dans le forum Programmation
    Réponses: 0
    Dernier message: 08/04/2010, 13h58
  5. Réponses: 2
    Dernier message: 23/03/2006, 17h32

Les tags pour cette discussion

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •