Ich schreibe eine Anwendung mit GUI mit wxPython. Ich habe zwei Maschinen mit CentOS 7. Die erste ist eine Build-Maschine und die andere ist sauber. Die Erstellungsmaschine hat logisch alles für die Quellkompilierung installiert. Ich möchte erreichen, dass meine Anwendung auf jeder CentOS 7 Maschine ohne Abhängigkeiten läuft. Also, hier ist das Problem.Pyinstaller - Skript kann nicht vollständig kompiliert werden
Quelle Kompilation beendet in Ordnung, aber wenn ich versuche, die binären auf der sauberen Maschine laufen zu lassen, erhalte ich die folgende Fehlermeldung beim Start:
# -*- 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
wie Meine Spec-Datei aussieht
Hinweis: Wenn ich yum update
auf der sauberen Maschine ausführen, dann läuft alles gut, aber ich will es völlig unabhängig auf Systembibliotheken. Daher sollte der Benutzer nichts aktualisieren oder installieren müssen. Ich suche nach einem Weg, wie ich diese Abhängigkeit in die Anwendung selbst "bündeln" kann, aber ich weiß nicht welche/wie.
Gibt es eine Möglichkeit, dies zu lösen? Danke
Edit: Wahrscheinlich dieses durch alte verursacht/libxcb
Bibliothek fehlt, aber ich habe noch keine Ahnung, wie es in binären zu bündeln.