cx_freeze: драйвер QODBC не загружен

мое приложение 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 …)

В прошлом я создал несколько приложений PyQT с cx_freeze, и он всегда работал очень хорошо. Однако вместе с модулем QtSql я всегда получаю сообщение об ошибке выше.

Моя операционная система: Windows 7

У вас есть идеи о том, как решить проблему?

edit: Хорошо, я понял. Я скопировал содержимое PyQt4\plugins\sqldrivers в C:\Test\sqldrivers и теперь он работает.

С уважением

Бернхард

Это происходит только на вашей машине разработчика, но когда вы создаете exe-файл и запускаете этот файл на другом компьютере, он не работает.

Я использую pyinstaller и решу проблему.

только использовать:

 pyinstaller --onefile --windowed myscript.py