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 без опции bundle files, она работает отлично.Но когда я использую опцию bundle file, она выходит из строя.
Я пробовал без опции zipfile, в которой он создает library.zip вместе с исполняемым файлом.И снова это не удалось.Я распаковал архив library.zip используя 7-zip, и обнаружил, что _pyAAc.pyd находится в папке pyAA внутри zip-файла.Итак, похоже, какая-то проблема с функцией memoryloadlibrary.
Когда я попытался распаковать архив с помощью функции Windows unzip, это не удалось.Мне пришлось использовать 7-zip, чтобы распаковать его.Это возможная подсказка?
Решение
Вам не хватает некоторых DLL-файлов в вашей сборке...
Сначала выполните поиск файла на вашем жестком диске _pyAAC.pyd
.Убедитесь, что он включен (отправлен) в вашу сборку.
Затем используйте "ходок по зависимостям" в файле .pyd (в вашей скомпилированной версии py2exe!), чтобы увидеть, чего все еще не хватает (другие DLL, которые вызывают MemoryLoadLibrary
сообщение для файла .pyd).Убедитесь, что эти зависимости также отправлены, ...