PyQt5 QMYSQL 驱动程序未加载

问题描述 投票:0回答:1

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

我安装了最新的

QT Creator 4.9.2
Qt 5.13.0
MinGW 32-Bit
MySQLServer 5.5
来编译
QMYSQL
驱动程序。我但是
sqldrivers
文件夹中的驱动程序和 bin 文件夹中的
libmysql.dll

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

此外,我安装在新的 Python 3.7 32 位上:

  • PyQt5:
    pip install pyqt5 (5.13.0)
  • mysql客户端:
    pip install mysqlclient (1.4.2)
  • mysql 连接器:
    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("hostname")
        db.setDatabaseName("database")
        db.setUserName("username")
        db.setPassword("1234567890")

        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 的库路径是

C:/Python/lib/site-packages/PyQt5/Qt/plugins
C:/Python

使用的操作系统是

Windows 10 (1809) 64-Bit
,我将MySQLServer lib文件夹包含在路径变量中。

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

python windows pyqt5 qsqldatabase
1个回答
0
投票

对我来说是这样工作的:卸载通过 pip3 安装的软件包。

pip3 uninstall PyQt5

安装适用于您的发行版的本机软件包(Linux 情况)。就我而言,是 Fedora

Sudo dnf install python3-qt5 python3-qt5-qtbase --allowerasing

使用可让您覆盖旧文件的选项,例如

--force
--allowerasing
或类似文件。

© www.soinside.com 2019 - 2024. All rights reserved.