Ошибка загрузки DLL Cx_Freeze - PullRequest
3 голосов
/ 15 января 2012

Я уже некоторое время пытаюсь использовать cx_freeze, и все же всегда возникает одна и та же ошибка

    import cx_Freeze.util
ImportError: DLL load failed: %1 is not a valid win32 application

Я пытался использовать как 32-разрядную, так и 64-разрядную версию, и пробовал оба файла setup.py и cxfreeze.bat

я спрашиваю, как мне заставить это работать?

1 Ответ

1 голос
/ 02 марта 2012

У меня была такая же проблема, и это было мое решение.

Я использую Python 3.2 для 64-битных Windows, и все мои установки библиотеки были для 64-битных, включая cx_freeze.Когда я пытался «заморозить» программу, которая импортировала пакет PyQt4, я получил ошибку:

ImportError: DLL load failed: %1 is not a valid win32 application

В моем случае проблема заключалась в том, что скрипт cxfreeze копировал два файла DLL (QtCore4.dll иQtGui4.dll) из моей установки MATLAB, а не из моей установки Python.DLL-библиотеки MATLAB были 32-битными, в то время как DLL-библиотеки Python были необходимыми 64-битными файлами.

Прочитайте сообщения, отображаемые при запуске сценария cxfreeze для создания ваших exe-файлов.Последние несколько сообщений должны быть "copying ... dll-> .... dll".Проверьте имена файлов и убедитесь, что все файлы на самом деле копируются из вашей установки Python, а не из какой-либо другой программы.

Если они копируются из другого места (как в моем случае), вы можете просто скопировать их на себяпосле сборки.В противном случае вам придется изменить путь, чтобы не включать папку, содержащую 32-битные библиотеки DLL, из любой программы, к которой они принадлежат.

...