MemoryLoadError при попытке запустить py2exe приложение

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

C:\Documents and Settings\Administrator\Desktop\dist>.\backend.exe install
Traceback (most recent call last):
  File "boot_service.py", line 6, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "win32serviceutil.pyo", line 9, in <module>
  File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading win32api.pyd

У меня есть сильная догадка, что я пропускаю библиотеку, но я не уверен, который — тем более, что средство проверки зависимости ничто не отмечает как отсутствующий в целевой системе. Как я должен продолжить двигаться?

5
задан Benjamin Pollack 20 January 2010 в 20:15
поделиться

2 ответа

Вы можете сделать проверку dll и зависимостей вручную. Когда вы генерируете exe, я уверен, вы заметили, что он печатает dll, которые требуются/используются. Проверьте на системе, где exe не работает, существуют ли эти dll и одинаковой ли они версии.

И еще одно. Вы копируете всю папку dist в систему или только exe, потому что вам нужна вся папка dist, а не только exe.

1
ответ дан 14 December 2019 в 01:08
поделиться

Выполняете ли вы преобразование py2exe на 64-битной / Vista?

Я писал свой код на vista64bit, и файлы .exe, которые я создаю, обычно не работают на 32-битной XP (это две машины, на которых я есть под рукой).

.exe услужливо выбрасывает текстовый файл с трассировкой, и оказывается, что 64-битные окна используют win32api.dll. Я предполагаю, что это .dll, используемый 64-битными окнами для репликации поведения 32-битной ОС, поэтому я просто беру тот же сценарий и выполняю преобразование на 32-битной XP. Надеюсь, это поможет.

1
ответ дан 14 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: