IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

Réalisation d'un programme avec les bibliothèques du logiciel QGIS [Python 2.X]


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    geomaticien
    Inscrit en
    Juillet 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : geomaticien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Réalisation d'un programme avec les bibliothèques du logiciel QGIS
    Bonjour,
    Je suis en windows 10.
    Je veux réaliser un programme en Python (2.7.5) en utilisant des bibliothèques Python (2.7.5) du logiciel QGIS 2.18, programme utilisable sur ce système d'exploitation.
    Je n'arrive pas à importer ces bibliothèques.
    L'IHM de QGIS propose un console Python. Dans cette console, les imports se déroulent sans difficulté. Par contre, il y a des erreurs quand j'essaye d'effectuer ces imports avec l'émulateur de python.
    J'ai effectué un petit programme me permettant de récupérer le contenu de sys.path de la console de QGIS et de l'importer dans le sys.path de l'émulateur après l'avoir vider de son contenu.
    Le résultat est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    contenu de sys.path
    taille de sys.path : 7
    liste de sys.path
    C:\QGIS\code_python
    C:\Program Files\QGIS 2.18\bin\python27.zip
    C:\QGIS\code_python\DLLs
    C:\QGIS\code_python\lib
    C:\QGIS\code_python\lib\plat-win
    C:\QGIS\code_python\lib\lib-tk
    C:\Program Files\QGIS 2.18\bin
     
    effacement du contenu de sys.path
    taille de sys.path : 0
     
    import de sys.path de la console QGIS dans ce sys.path
    taille de sys.path : 33
    liste de sys.path
    C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/plugins\processing
    C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python
    C:/Users/geomajic/.qgis2/python
    C:/Users/geomajic/.qgis2/python/plugins
    C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/plugins
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\matplotlib-1.3.1-py2.7-win-amd64.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\nose-1.3.3-py2.7.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\tornado-4.0.1-py2.7-win-amd64.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\backports.ssl_match_hostname-3.4.0.2-py2.7.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\certifi-14.05.14-py2.7.egg
    C:\PROGRA~1\QGIS2~1.18\bin\python27.zip
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\DLLs
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\plat-win
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\lib-tk
    C:\PROGRA~1\QGIS2~1.18\bin
    C:\PROGRA~1\QGIS2~1.18\apps\Python27
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\PIL
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\jinja2-2.7.2-py2.7.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\markupsafe-0.23-py2.7-win-amd64.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\pytz-2012j-py2.7.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\win32
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\win32\lib
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\Pythonwin
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\Shapely-1.2.18-py2.7-win-amd64.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\wx-2.8-msw-unicode
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\xlrd-0.9.2-py2.7.egg
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\xlwt-0.7.5-py2.7.egg
    C:/Users/geomajic/.qgis2//python
    C:\Users\geomajic\.qgis2\python\plugins\CEERAT_Regroupement\outils
    C:\Users\geomajic\.qgis2\python\plugins\opeNoise\tools
    C:\Users\geomajic\.qgis2\python\plugins
    Après cela j'essaye d'effectuer des imports :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    lancement des imports
    import PyQt
    from PyQt4.QtGui import *
    from PyQt4.QtCore import *
    import qgis.PyQt
    Traceback (most recent call last):
      File "I_qgis.py", line 56, in <module>
        import qgis.PyQt
      File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python\qgis\__init__.py", line 26, in <module>
        from qgis.PyQt import QtCore
      File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python\qgis\PyQt\QtCore.py", line 28, in <module>
        sip.setapi(api, 2) #Remplacer sip.setapi(api, 2) par sip.setapi(api, 1) le 22 decembre
    ValueError: API 'QDate' has already been set to version 1
    Je ne comprends pas pour quelle raison j'ai cette erreur qui n'apparait pas dans la console de QGIS.
    Je modifie la ligne 28 du module QtCore (je n'ai alors plus accès à la console de QGIS) et j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    lancement des imports
    import PyQt
    from PyQt4.QtGui import *
    from PyQt4.QtCore import *
    import qgis.PyQt
    Traceback (most recent call last):
      File "I_qgis.py", line 56, in <module>
        import qgis.PyQt
      File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python\qgis\__init__.py", line 26, in <module>
        from qgis.PyQt import QtCore
      File "C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python\qgis\PyQt\QtCore.py", line 37, in <module>
        from PyQt4.QtCore import QPyNullVariant
    ImportError: cannot import name QPyNullVariant
    Cette erreur est surprenante car, dans la console du QGIS, il me propose le module QPyNullVariant.

    Nom : QPyNullVariant.png
Affichages : 378
Taille : 13,2 Ko

    Je me suis demandé si les deux consoles utilisaient le même fichier. Dans la console de qgis j'ai effectué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Print PyQt4.QtCore.__file__
    C:\PROGRA~1\QGIS2~1.18\apps\Python27\lib\site-packages\PyQt4\QtCore.pyd
    Pour m'assurer que l'émulateur de Python utilise également ce fichier, j'ai modifier son nom en QtCore0.pyd.
    J'ai relancé mon programme et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    lancement des imports
    import PyQt
    from PyQt4.QtCore import *
    Traceback (most recent call last):
      File "I_qgis.py", line 52, in <module>
        from PyQt4.QtCore import *
    ImportError: No module named QtCore
    A priori, c'est donc le même fichier QtCore.pyw. Pour le confirmer, j'ai lancé une recherche dans l'explorateur de fichier de QtCore.pwd dans le répertoire QGIS 2.18.
    Je ne comprend donc pas pourquoi l'émulateur Python ne trouve pas le module QPyNullVariant. Est ce que quelqu'un a une idée?

    Merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    geomaticien
    Inscrit en
    Juillet 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : geomaticien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    J'ai résolu mon problème en modifiant des paramètres. J'ai fourni les explication http://georezo.net/forum/viewtopic.p...290114#p290114

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compiler un programme avec les bibliothèques statiques
    Par Luke spywoker dans le forum OpenCV
    Réponses: 0
    Dernier message: 25/09/2015, 15h00
  2. [MCRYPT] Est-il possible de crypter des fichiers avec les bibliothèques de hash ?
    Par a028762 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/12/2006, 09h18
  3. [Debutant] Programme avec les fonctions
    Par Tilk*sg1 dans le forum Débuter
    Réponses: 5
    Dernier message: 06/11/2006, 10h03
  4. Programmation avec les MFC
    Par ksoft dans le forum MFC
    Réponses: 3
    Dernier message: 04/05/2006, 21h50
  5. Réponses: 4
    Dernier message: 15/03/2006, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo