我的 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 创建可执行文件的位置),我看到一堆 *.dll 文件,其中包含单词“sql”(qsqlodbc4.dll、QtSql4.dll ...)
过去,我使用 cx_freeze 创建了一些 PyQT 应用程序,它总是运行得很好。然而,与 QtSql 模块一起使用时,我总是收到上面的错误消息。
我的操作系统:Windows 7
你们对如何解决这个问题有什么想法吗?
edit:好的,我明白了。我复制了内容PyQt4\plugins\sqldrivers
to C:\Test\sqldrivers
现在可以了。
亲切的问候
Bernhard
这仅在您的开发计算机中有效,但是当您创建 exe 文件并在其他计算机上运行该文件时,它不起作用。
我使用pyinstaller,并解决了问题。
仅使用:
pyinstaller --onefile --windowed myscript.py
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)