#1 Tue 12 June 2018 09:55
- erwannlh
- Participant occasionnel
- Date d'inscription: 8 Sep 2015
- Messages: 19
QGIS: probl avec QgsDataSourceURI pour script python
Bonjour tout le monde,
résumé de mon problème : "NameError: name 'QgsDataSourceUri' is not defined" quand je tente de faire un plugin pour modifier une couche sur une base de données postgres
Verison plus détaillée :
je cherche a developper un plugin QGIS qui me permettra de recuperer les noms des voies dans le cadastre pour les associer aux polylignes les plus proches.
la couche dans laquelle je veux enregistrer ces adresses se trouve sur un serveur postgres.
La partie pour recuperer l'adresse se fait bien, mais pour l'instant je n'y arrive que sur une couche enregistrée localement.
De ce que j'ai pu voir, le code pour ouvrir et modifier sous QGIS utilise "QgsDataSourceURI"
mon code ressemble a cela:
Code:
from qgis.core import * from PyQt4.QtCore import * from PyQt4.QtCore import QSettings from PyQt4.QtCore import QSettings from qgis.core import QgsVectorLayer, QgsDataSourceURI uri = QgsDataSourceUri() # set host name, port, database name, username and password uri.setConnection(hote_IP, "5432", base_de_donnee, utilisateur, mot_de_passe) # set database schema, table name, geometry column and optionally # subset (WHERE clause) #uri.setDataSource("public", "roads", "the_geom", "cityid = 2643") uri.setDataSource("", sql, "geom", "", "gid") vlayer = QgsVectorLayer(uri.uri(), zapm, "postgres") QgsMapLayerRegistry.instance().addMapLayer(vlayer)
(c'est ce que j'ai récupéré sur le net, sur je ne sais plus quel site)
Mon probleme:
Quand je teste ce code sur Python, je prends directement une erreur "Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'QgsDataSourceUri' is not defined"
Meme quand je tente avec uniquement les import et la ligne uri = QgsDataSourceUri(), je prends la meme erreur.
J'ai cherché sur le net ce que je trouvais sur cette erreur, mais je n'ai rien trouvé qui résolve mon problème.
Est ce un problème d'installation? une librairie que je n'aurais pas bien installée? Mon import n'est pas bon? (j'aurais très honte...)
Si quelqu'un a des idées, je suis preneur, parce que je me prends vraiment la tete la dessus.
Merci, Erwann
Hors ligne
#2 Tue 12 June 2018 10:43
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: probl avec QgsDataSourceURI pour script python
Bonjour,
NameError: name 'QgsDataSourceUri' is not defined"
Attention à la casse :
QgsDataSourceUri est différent de QgsDataSourceURI.
La classe QgsDataSourceURI a été renommée pour la version 2.99 en QgsDataSourceUri mais je suppose que vous êtes sur une version inférieure.
Cordialement,
Dernière modification par lejedi76 (Tue 12 June 2018 10:44)
Hors ligne
#3 Tue 12 June 2018 12:22
- erwannlh
- Participant occasionnel
- Date d'inscription: 8 Sep 2015
- Messages: 19
Re: QGIS: probl avec QgsDataSourceURI pour script python
rhhhhhhhhhhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaa, c'est tellement bête ^^
Merci beaucoup!
et oui, tu as raison, je suis en 2.18
bon, je peux avancer maintenant. encore merci
Hors ligne