Подтвердить что ты не робот

Py2Exe: Ошибка загрузки DLL

При попытке использовать py2exe для преобразования простой игры Python, сделанной в формате exe, это дало мне следующую ошибку:

Traceback (most recent call last):
  File "C:\Users\Tali\Desktop\2exe.py", line 4, in <module>
    setup(console=['test.py'])
  File "C:\Python\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python\lib\distutils\dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "C:\Python\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 243, in run
    self._run()
  File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 305, in _run
    dlls = self.find_dlls(extensions)
  File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 389, in find_dlls

    self.dll_excludes)
  File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 1021, in find_dep
endend_dlls
    import py2exe_util
ImportError: DLL load failed: %1 is not a valid Win32 application.

Я искал в Интернете около часа, пытался изменить вещи в своей программе. Ничего не работает. Хотя моя программа использует "случайную" библиотеку, я не видел случая, когда она вызывала такую ​​проблему.

Установка script:

from distutils.core import setup
import py2exe

setup(console=['test.py'])

Да, оба сценария находятся в одной и той же папке (Desktop). Если это имеет значение, я запускаю Windows Vista с Python 2.7

Спасибо всем заблаговременно.

4b9b3361

Ответ 1

У меня была точно такая же проблема.

Так как у меня Windows 7 64bit, я загрузил py2exe-0.6.9.win64-py2.6.amd64.exe, который, я полагаю, должен быть 64-битной версией py2exe. но это не сработало, и у меня была такая же ошибка.

Я перешел на py2exe-0.6.9.win32-py2.6.exe, и он работал нормально.

Я предполагаю, что вам нужно сопоставить 32-битную или 64-битную версию с установкой python вместо самих окон.

Кстати, "setup.py py2exe" или "python setup.py py2exe" действительно не имеет значения, если вы указали, что окна открывают *.py с помощью python во время установки python.

Ответ 2

Я встретил ту же проблему, и я обыскал, и я пришел сюда. Я попробовал подсказку по xiao-yu, но я не работал. Поэтому я нашел это от http://www.py2exe.org/index.cgi/Tutorial#Step52: 5.2.1. Объединение библиотеки времени выполнения C

Если у вас есть права на перераспределение MSVCR90.dll, его копия должна быть установлена ​​в вашей установке Visual Studio под VC\redist\x86\Microsoft.VC90.CRT. Начиная с Visual Studio 2008, вы не можете просто скопировать этот DLL файл - вам также нужен файл манифеста, который вы найдете там. В файле redist.txt указано, что вы должны распространять все три библиотеки DLL и файл немодифицированного манифеста, и это является нарушением лицензионного соглашения для распространения только одной из DLL без других (хотя py2exe нужен только MSVCR90.dll.) Соответствующий отрывок из файла redist.txt выглядит следующим образом: -----------------------

Итак, попробуйте.

Ответ 3

Кажется, проблема может быть решена путем загрузки правильного установщика py2exe для вашей платформы и версии.

У меня была такая же проблема и здесь. Я работал на Windows 7 64 бит и установил Python 2.7. Моя проблема связана с тем, что я установил py2exe-0.6.9.win32-py2.7.exe, и установщик не смог найти python, хотя он нашел папку установки. Выполнение python setup.py py2exe на этом этапе дало мне те же самые ошибки, которые вы видите.

Затем я загрузил py2exe-0.6.9.win64-py2.7.amd64.exe из эту страницу и установил его. Установка прошла без заминок и python setup.py py2exe игра со множеством консольных выходов, создала папки build и dist и ожидаемый исполняемый файл.

Ответ 6

Из ваших комментариев, я вижу, что вы делаете это в командной строке:

setup.py py2exe 

из учебник py2exe третий шаг, вы должны сделайте это вместо этого (в команде promt):

python setup.py py2exe

Второй взгляд на комментарии к исходному вопросу показывает, что это предложение уже сделано. +1 для joaquin для этого.

Чтобы попытаться ответить на ваш вопрос еще раз: Хоакин также упомянул, что это может быть проблемой. Вместо того, чтобы пытаться это исправить, вы можете рассмотреть более простой вариант копирования файлов python в C:\Python. Затем в командной строке:

cd C:\Python
python setup.py py2exe

Это всегда работало для меня

Надеюсь, что это поможет

Ответ 7

Вы можете справиться с py2exe и головными болями, я пробовал это делать, даже когда у меня все было правильно, это было бы ошибкой, хотя я нашел отличную программу python gui2exe, поэтому очень просто сделать exe (или любой других поддерживаемых форматов).

Gui2exe: http://code.google.com/p/gui2exe/downloads/detail?name=GUI2Exe_0.5.0.zip

Примеры: http://code.google.com/p/gui2exe/wiki/GUI2ExeExamples

Ответ 8

Я столкнулся с той же проблемой, я использовал Python 2.7 (32 бит) в Windows 7 (64 бит) с py2exe-0.6.9.win64-py2.7.amd64.exe, поэтому проблема заключалась в использовании 32-битного Python и 64-битного py2exe. Если вы не знаете, использует ли пакет Python 32-разрядный или 64-разрядный бит, запустите idle.bat из C:\Python27\Lib\idlelib\.

Первая строка в приглашении окна python покажет вам детали пакета python.

Я удалил py2exe-0.6.9.win64-py2.7.exe, запустив "pip uninstall py2exe" и установив py2exe-0.6.9.win64-py2.7.amd64.exe, который работал у меня.