首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QGIS调用QgsDataSourceUri实现python插件

用QGIS调用QgsDataSourceUri实现python插件
EN

Stack Overflow用户
提问于 2018-06-12 08:21:50
回答 1查看 2.1K关注 0票数 1

TLDR :使用QGIS,我试图开发一个python插件来更新数据库。不幸的是,我立即收到了一个错误: Traceback (最近一次调用):File "",第1行,在NameError: name 'QgsDataSourceUri‘中没有定义

更详细:

我在QGIS2.18上开发了一个插件来更新postgres数据库中的一些数据。为此,我想使用这样的代码:

代码语言:javascript
复制
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)

(我从网上得到了代码,稍后我会修改的)

我的问题是:当我试图在QGIS的Python控制台上运行这段代码时,我马上就会得到错误。

追溯(最近一次调用):文件"",第1行,在NameError: name 'QgsDataSourceUri‘中未定义

即使我只运行导入和uri = QgsDataSourceUri()行时,也会收到相同的错误消息。

我一直未能找出如何纠正这一问题。

QGIS的安装问题?蟒蛇的?进口不良?

配置: qgis 2.18.20 python 3.6.5

如果有人想办法解决这个问题,我会很高兴的。

谢谢你,埃尔旺

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-04 01:48:08

您只是使用了错误的类名。它应该是uri = QgsDataSourceURI()而不是uri = QgsDataSourceUri(),因为您已经导入了QgsDataSourceURI而不是QgsDataSourceUri

QGIS和QT类区分大小写.您可以确认QGIS 2.18相关API的确切语法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50812456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档