私はwxPythonを使ってGUIを使ってアプリケーションを書いています。 CentOS 7を搭載した2台のマシンがあります。最初はビルドマシンで、もう1台はクリーンです。ビルドマシンはソースコンパイルのためのすべてを論理的にインストールしました。自分のアプリケーションがCentOS 7マシン上で動作することを望みます。だから、ここに問題がある。Pyinstaller - 完全にスタンドアロンのスクリプトをコンパイルできません
ソースのコンパイルはうまく終了し、私はクリーンなマシンでバイナリを実行しようとすると、私は、起動時に次のエラーを取得する:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['/home/user/gui'],
binaries=None,
datas=[('images/icon.png', 'images'), ('images/logo.png', 'images'), ('images/head.jpg', 'images'), ('images/step_background.png', 'images')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='gui',
debug=False,
strip=False,
upx=True,
console=True) # Only for debug
:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
File "gui.py", line 12, in <module>
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
File "site-packages/wx-2.8-gtk2-unicode/wx/__init__.py", line 45, in <module>
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
File "site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 4, in <module>
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 546, in load_module
ImportError: /tmp/_MEI6Ni7CP/libX11.so.6: undefined symbol: xcb_poll_for_reply64
main returned -1
マイspecファイルは次のようになります
注:クリーンマシンでyum update
を実行すると、すべて正常に動作しますが、システムライブラリとは完全に独立した状態にします。したがって、ユーザーは何かを更新またはインストールする必要はありません。私は、アプリケーション自体にこの依存関係を「バンドル」する方法を探していますが、どちらがどのような方法かわかりません。
これを解決する方法はありますか? はありがとう
編集: は、おそらくこれがlibxcb
ライブラリの欠落/古いによって引き起こされるが、私はまだバイナリにそれをバンドルするか見当がつかない。