PySide + QtSql - 无法加载数据库驱动程序

时间:2014-04-26 14:45:32

标签: python qt pyqt odbc pyside

编辑:我不得不改变这个问题,因为我发现这个问题不仅与ODBC驱动程序相关,还与所有驱动程序有关,如MYSQL,SQLITE等。

所以问题是:我尝试使用PySide和QtSql模块连接到数据库。

关键代码:

from PySide import QtGui
from PySide import QtSql
import sys

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    db = QtSql.QSqlDatabase.addDatabase('QODBC')  
    # or others: QMYSQL, QSQLITE etc.
    sys.exit(app.exec_())

当我尝试运行它时,我收到一条消息:

QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers: 

当我尝试使用等效的PyQt4代替PySide时,我得不到任何消息,我认为这意味着ODBC驱动程序可用于PyQt4。但是,遗憾的是,由于其他许多原因,我无法将我的应用程序从PySide切换到PyQt4。

当我查看Python Lib文件夹时,我可以看到python-3.3.2\Lib\site-packages\PySide\plugins\sqldrivers包含DLL,包括qsqlodbc4.dll。所以有更多的东西缺失,我不知道是什么。

正如我所写,问题不仅在于ODBC,还在于所有数据库驱动程序。

1 个答案:

答案 0 :(得分:0)

在这里找到一个关于stackoverflow的解决方案(与PyQt而不是PySide相关,但它有效):PyQT can't find any SQL drivers

简而言之 - 在调用addDatabase之前输入此代码:

site_pack_path = site.getsitepackages()[1]
QtGui.QApplication.addLibraryPath('{0}\\PySide\\plugins'.format(site_pack_path))