Python py2exe — ошибка загрузки памяти

Я создаю приложение среднего уровня в Python. Теперь все работает хорошо, и я пытаюсь сделать это исполняемым файлом Windows с помощью py2exe. Исполняемый файл создается нормально, но когда я пытаюсь его запустить, происходит сбой со следующей ошибкой.

  File "zipextimporter.pyo", line 82, in load_module
  File "ffhandler.pyo", line 33, in ?
  File "zipextimporter.pyo", line 82, in load_module
  File "pyAA\__init__.pyo", line 1, in ?
  File "zipextimporter.pyo", line 82, in load_module
  File "pyAA\AA.pyo", line 8, in ?
  File "zipextimporter.pyo", line 82, in load_module
  File "pyAA\pyAAc.pyo", line 5, in ?
  File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading pyAA\_pyAAc.pyd

Я использую pyAA в этом приложении. Я искал в Интернете, но не смог найти никакого решения. Я скопировал msvcp71.dll в windows/system32, но проблема осталась.

Я решил это раньше (около 7 месяцев назад), но мой жесткий диск вышел из строя, и когда я пытаюсь воссоздать его, я не могу решить его сейчас. :-(

Я был бы очень обязан, если бы кто-то мог помочь мне здесь.

РЕДАКТИРОВАТЬ: Когда я использую py2exe без опции файлов пакета, он работает отлично. Но когда я использую параметр файла пакета, он терпит неудачу.

Я пробовал без опции zipfile, при этом он создает библиотеку.zip вместе с исполняемым файлом. Опять не получилось. Я разархивировал library.zip с помощью 7-zip и обнаружил, что _pyAAc.pyd находится в папке pyAA внутри zip-файла. Итак, это похоже на проблему с функцией memoryloadlibrary.

Когда я попытался разархивировать с помощью функции распаковки Windows, это не удалось. Пришлось распаковывать 7-zip. Это возможная подсказка?


person Koran    schedule 29.11.2009    source источник


Ответы (1)


Вам не хватает некоторых DLL в вашей сборке...

Сначала найдите на жестком диске файл _pyAAC.pyd. Убедитесь, что он включен (отправлен) в вашу сборку.

Затем используйте 'dependency walker' в файле .pyd (в вашей скомпилированной версии py2exe!), чтобы увидеть, что это это то, что все еще отсутствует (другие библиотеки DLL, которые вызывают сообщение MemoryLoadLibrary для файла .pyd). Убедитесь, что эти зависимости также отправлены,...

person ChristopheD    schedule 29.11.2009
comment
Спасибо, КристофД. Я проверил его, но обнаружил, что он действительно отправлен. Я внес некоторые изменения в свой вопрос, пожалуйста, посмотрите то же самое. - person Koran; 30.11.2009
comment
Я видел это раньше в прошлом (некоторые dll не любят поставляться с набором параметров bundle_files. На самом деле не знаю, как это обойти. Способ может заключаться в сборке с выключенным bundle_files. Или у вас может быть посмотрите на альтернативы: stackoverflow.com/questions/ 1689086/ (например, pyinstaller) - person ChristopheD; 30.11.2009