我的python应用程序看起来像:
test.py
from PyQt4 import QtCore
from PyQt4 import QtGui
from PyQt4 import QtSql
import sys
import atexit
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
db = QtSql.QSqlDatabase.addDatabase('QODBC')
sys.exit(app.exec_())
如果我运行此应用程序,一切正常。但是,如果我使用cx_freeze创建可执行文件,我总是会收到以下错误:
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
我使用以下命令创建可执行文件:
C:\Python27\Scripts\cxfreeze.bat test.py --target-dir C:\Test --include-path="C:\Python27\Lib\site-packages\PyQt4"
如果我查看C:\Test
(cx_freeze创建可执行文件的位置),我会看到一堆带有“sql”字样的* .dll文件(qsqlodbc4.dll,QtSql4.dll ... )
过去,我用cx_freeze创建了一些PyQT应用程序,它总能很好地工作。但是,与QtSql模块一起,我总是收到上面的错误消息。
我的操作系统:Windows 7
你们对如何解决这个问题有任何想法吗?
编辑:好的,我明白了。我将PyQt4\plugins\sqldrivers
的内容复制到C:\Test\sqldrivers
,现在可以使用了。
亲切的问候
哈德
答案 0 :(得分:0)
这只适用于您的开发人员计算机,但是当您创建一个exe文件并在其他计算机上运行此文件时,它无法正常工作。
我使用pyinstaller,并解决问题。
仅使用:
pyinstaller --onefile --windowed myscript.py