Я пытаюсь создать исполняемый файл моего приложения Python, который использует PyGTK для создания графического интерфейса. У меня есть хорошо зарекомендовавший себя автоматизированный процесс сборки с использованием Pyinstaller, который работал у меня для предыдущего приложения. Достаточно сказать, что он вызывает обычные Makespec.py и Build.py с 32-битным Python 2.7, а Pyinstaller настроен на 32-битные. Полученное 32-разрядное приложение отлично работает на моем компьютере и другом компьютере с 64-разрядной версией Windows 7, но на 32-разрядной версии Windows XP происходит сбой с этой ошибкой:
C:\OutNav_0_64\OutNav_0.64>outnav
Traceback (most recent call last):
File "<string>", line 23, in <module>
File "C:\Pyinstaller-1.5\iu.py", line 436, in importHook
File "C:\Pyinstaller-1.5\iu.py", line 521, in doimport
File "C:\Users\462974\Documents\Local Sandbox\tools\utilities\Oni\build\pyi.win32\OutNav\outPYZ1.pyz/gtk", line 40, in
<module>
File "C:\Pyinstaller-1.5\iu.py", line 477, in importHook
File "C:\Pyinstaller-1.5\iu.py", line 495, in doimport
File "C:\Pyinstaller-1.5\iu.py", line 297, in getmod
File "C:\Pyinstaller-1.5\archive.py", line 468, in getmod
File "C:\Pyinstaller-1.5\iu.py", line 109, in getmod
ImportError: DLL load failed: The specified procedure could not be found.
Странно то, что на моей машине нет каталога C:\Pyinstaller-1.5 или того, в котором возникла ошибка. Я понятия не имею, почему он пытается запустить код из этого несуществующего каталога или что такое отсутствующая DLL. Может ли кто-нибудь помочь мне свернуть PyGTK в мое приложение?
ПРИМЕЧАНИЕ. Первая строка трассировки, строка 23 в моей программе,
import gtk
ОБНОВЛЕНИЕ: Мой менеджер успешно запустил его на 64-битной Windows XP. ОБНОВЛЕНИЕ 2: Он ошибся, это была 64-битная Windows 7. Та же проблема с его установкой Windows XP.
Кроме того, на исходной машине это не удалось, из каталога исполняемого файла я сделал это:
>>> import imp
>>> fp = open('gtk._gtk.pyd', 'rb')
>>> mod = imp.load_module('gtk._gtk', fp, 'gtk._gtk.pyd', ('.pyd', 'rb', 3))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
dist
, созданной PyInstaller? Кроме того, поможет ли это, если вы создадите приложение для Windows XP? pyinstaller.org/ticket/324 выглядит примерно так же. - person Luke Woodward   schedule 13.07.2012The specified procedure could not be found
ошибка. - person Luke Woodward   schedule 13.07.2012dist
? Если в папкеdist
вашего приложения есть некоторые из этих DLL, поможет ли их удаление? - person Luke Woodward   schedule 13.07.2012