PyGTKを使用してGUIを作成するPythonアプリケーションの実行可能ファイルを作成しようとしています。以前のアプリケーションで機能していたPyinstallerを使用した、確立された自動ビルドプロセスがあります。Pyinstallerが32ビット用に構成された32ビットPython2.7で通常のMakespec.pyとBuild.pyを呼び出すと言えば十分です。結果の32ビットアプリケーションは、私のマシンとWindows 7 64ビットを実行している別のマシンでは正常に動作しますが、32ビットWindowsXPでは次のエラーで失敗します。
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ビットのWindowsXPで正常に実行しました。更新2:彼は間違っていました。64ビットのWindows7でした。WindowsXPのインストールでも同じ問題が発生します。
また、失敗した元のマシンで、実行可能ファイルのディレクトリから、次のようにしました。
>>> 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.