编辑:我不得不改变这个问题,因为我发现这个问题不仅与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,还在于所有数据库驱动程序。
答案 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))