对于这个问题,我知道有很多疑问和答案,但是对我来说没有任何作用。
我用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位:
pip install pyqt5 (5.13.0)
pip install mysqlclient (1.4.2)
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/plugins
和C:/Python
使用的操作系统是Windows 10 (1809) 64-Bit
,我将MySQLServer lib文件夹包含在路径变量中。
我不知道该怎么办,我已经阅读了有关此主题的所有SO问题,但没有针对我的问题的有效解决方案。
答案 0 :(得分:0)
对我来说,工作方式是:通过pip3插入UNinstall软件包。 pip3卸载PyQt5 为您的发行版(Linux案例)安装本机软件包。在我的情况下是Fedora Sudo dnf安装python3-qt5 python3-qt5-qtbase --allowerasing 使用一个选项,该选项可让您覆盖--force或--allowerasing等等效文件