2016-03-29 8 views
1

私は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ライブラリの欠落/古いによって引き起こされるが、私はまだバイナリにそれをバンドルするか見当がつかない。

答えて

1

最近同じ問題が発生しました。

Pyinstallerはlibxcbライブラリを除外します。 はpyInstallerの//dylib.py依存チェック - そこにあなたが見つける:

libxcbは、頻繁に(例えば:UbuntuのLTSリリース間)ABIを変更し、 libxcb-DRIは、例えば(頻繁にABIが変更された:UbuntuのLTSの間 リリース)通常、グラフィックススタックの依存関係としてインストールされます。 とにかく。それを束ねる必要はありません。

...またはこのコミットチェックし、まだpyInstallerのにそれを行っていない:削除する https://github.com/pyinstaller/pyinstaller/commit/4a6d74a13122b763e99f97995fbbb1c6967769bb

試してみてください。pyInstallerの中の "r '/ libxcb.so .. *'、1"/depend/dylib.py

関連する問題