Python py2exe - ошибка загрузки памяти - PullRequest
2 голосов
/ 29 ноября 2009

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

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

EDIT: Когда я использую py2exe без опции пакетных файлов, он работает отлично. Но когда я использую опцию файла пакета, это терпит неудачу.

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

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

1 Ответ

0 голосов
/ 29 ноября 2009

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

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

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

...