QGIS插件,ModuleNotFoundError:没有名为“pymysql”的模块

2024-06-16 08:28:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为qgis写一个插件。在这个插件中,我需要查询一个数据库,我尝试使用pymysql。当我尝试在Qgis中安装插件时,错误消息是:ModuleNotFoundError:No module name'pymysql'。Pymsql安装正确,并且通常可以正常工作,我确信在我导入模块的代码中。这是我使用db连接的代码部分。我的代码有问题吗,或者在Qgis插件中使用pymysql是不可能的

retrive = "SELECT DISTINCT ID FROM `beni` Join relazioni ON beni.ID = relazioni.IDR WHERE relazioni.data="+dataInizio

#database connection
connection = pymysql.connect(host="localhost",user="root",passwd="",database="mydb",port=3308 )
cursor = connection.cursor()

if connection.open:
  #execute query
  cursor.execute(retrive)
  rows = cursor.fetchall()

  if not rows:
    self.iface.messageBar().pushMessage(
    'Success', "rows is empty", level=Qgis.Success)
  else:
    #create Qgis Expression
    seperator = ', '
    rowsString=seperator.join(rows)
    expr = QgsExpression( "id in ("+rowsString+")")
    cLayer = iface.mapCanvas().currentLayer()
    it = cLayer.getFeatures( QgsFeatureRequest( expr ) )
    ids = [i.id() for i in it]

    #select by ids and load style
    cLayer.selectByIds(ids)
    cLayer.loadNamedStyle(selectedStyle)
    cLayer.triggerRepaint()

connection.close()

Tags: 代码插件ididsifconnectioncursordatabase