Python (python-gst) で gstreamer のバインディングを実行するプログラムをデプロイしようとしています。これにはpyinstallerを使用しています。Windows 7、python-2.7 64ビットを実行しています。Heres 最小限の作業例 - pyinstallertest.py:
import gi
print 'hello world'
次にpyinstaller foo.spec
、エラーや警告なしで実行します。ここで、foo.spec は次のファイルです。
import os
gst_plugin_path = os.environ.get('GST_PLUGIN_PATH').split('lib')[0]
a = Analysis(['.\\pyinstallertest.py'],
pathex=['C:\\pyinstaller_test'],
hiddenimports=[],
hookspath=None,
runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='pytest.exe',
debug=False,
strip=None,
upx=True,
console=True )
coll = COLLECT(exe, Tree('./'),
Tree(gst_plugin_path),
Tree(os.path.join(gst_plugin_path, 'bin')),
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
name='pytest')
生成された pytest.exe を \dist\pytest\ で実行すると、次のエラーで失敗します。
File "C:\python27\lib\site-packages\pyinstaller-2.1-py2.7.egg\PyInstaller\loader\pyi_importers.py", line 412, in load_module
module = imp.load_module(fullname, fp, filename, self._c_ext_tuple)
ImportError: DLL load failed: The specified procedure could not be found.
これを修正する方法、または gstreamer (および gi パッケージ) を含む Windows に Python プログラムをデプロイする別の方法についてのアイデアはありますか?