Py2Exe: сбой загрузки DLL - PullRequest
       46

Py2Exe: сбой загрузки DLL

18 голосов
/ 24 сентября 2010

При попытке использовать 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.

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

Сценарий установки:

from distutils.core import setup
import py2exe

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

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

Большое спасибо всем заранее.

Ответы [ 9 ]

33 голосов
/ 29 октября 2010

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

Так как у меня 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" действительно не имеет значения, если вы указали Windows открывать * .py с python во время установки python.

3 голосов
/ 21 марта 2013

Кажется, проблему можно решить, загрузив правильный установщик 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 и ожидаемый исполняемый файл.

3 голосов
/ 24 февраля 2012

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

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

, попробуйте.

2 голосов
/ 19 февраля 2016

Я решил эту проблему, загрузив «Компилятор Microsoft Visual C ++ для Python 2.7» http://www.microsoft.com/en-pk/download/details.aspx?id=44266

2 голосов
/ 29 сентября 2010

Попробуйте установить распространяемый пакет Microsoft Visual C ++ 2008 (x86): http://www.microsoft.com/downloads/en/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en

0 голосов
/ 07 августа 2018

py2exe выглядит очень устаревшим.Последнему выпуску исполнилось четыре года (с 2014 года, сегодня - 2018 год)

Последняя запись в разделе "новости" на главной странице - с 2008 года (десять лет).

Я полагаю, что этоЛучше использовать другой инструмент, если у вас есть ошибки с py2exe сегодня.

0 голосов
/ 29 августа 2017

Я столкнулся с той же проблемой, я использовал 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, который работал для меня.

0 голосов
/ 24 сентября 2010

Вы можете справиться с 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

0 голосов
/ 24 сентября 2010

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

setup.py py2exe 

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

python setup.py py2exe

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

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

cd C:\Python
python setup.py py2exe

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

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

...