PyQt5 QMYSQL驱动程序未加载

时间:2019-07-12 11:50:55

标签: python windows pyqt5 qsqldatabase

对于这个问题,我知道有很多疑问和答案,但是对我来说没有任何作用。

我用QT Creator 4.9.2 Qt 5.13.0MinGW 32-Bit安装了最新的MySQLServer 5.5,以编译QMYSQL驱动程序。我是sqldrivers文件夹中的驱动程序,而bin文件夹中的libmysql.dll是驱动程序。

如果我使用C ++连接到数据库,则一切正常,但我不使用python。

此外,我还安装了新的Python 3.7 32位:

  • PyQt5:pip install pyqt5 (5.13.0)
  • mysqlclient:pip install mysqlclient (1.4.2)
  • mysql-connector:pip install mysql-connector (2.2.9)

,但我之前在PyQt5的sqldrivers文件夹中编译了该驱动程序,因为该驱动程序也丢失了。

我的课:

class SqlConnector(QSqlDatabase):
    def __init__(self):
        super(SqlConnector, self).__init__()
        self.db = self.connect()

    def __del__(self):
        self.db.close()

    def connect(self):
        db = QSqlDatabase.addDatabase("QMYSQL")
        db.setHostName("ap32.cbscluster.com")
        db.setDatabaseName("archimed")
        db.setUserName("markus")
        db.setPassword("345.323.454.781")

        ok = db.open()

        if ok:
            print("Connection established")
            return db
        else:
            print("Connection failed: ", db.lastError().text())
            return None

    def getPools(self):
        query = QSqlQuery("SELECT id, name, token, dlxCode FROM AnalysisPool", self.db)

        model = QSqlQueryModel()
        model.setQuery(query)

        return model

主要方法:

from PyQt5.QtSql import QSqlDatabase, QSqlQueryModel, QSqlQuery
from PyQt5.QtWidgets import QApplication, QTableView

if __name__ == "__main__":
    app = QApplication(sys.argv)

    poolView = QTableView()
    poolView.show()

    database = SqlConnector()

    # poolView.setModel(database.getPools())

    sys.exit(app.exec_())

PyQt的libraryPaths为C:/Python/lib/site-packages/PyQt5/Qt/pluginsC:/Python

使用的操作系统是Windows 10 (1809) 64-Bit,我将MySQLServer lib文件夹包含在路径变量中。

我不知道该怎么办,我已经阅读了有关此主题的所有SO问题,但没有针对我的问题的有效解决方案。

1 个答案:

答案 0 :(得分:0)

对我来说,工作方式是:通过pip3插入UNinstall软件包。 pip3卸载PyQt5 为您的发行版(Linux案例)安装本机软件包。在我的情况下是Fedora Sudo dnf安装python3-qt5 python3-qt5-qtbase --allowerasing 使用一个选项,该选项可让您覆盖--force或--allowerasing等等效文件