Python 在不同的Linux机器上部署PyQt5应用程序

Python 在不同的Linux机器上部署PyQt5应用程序,python,ubuntu,pyqt,cx-freeze,pyqt5,Python,Ubuntu,Pyqt,Cx Freeze,Pyqt5,我一个星期以来一直在努力解决这个问题,所以我想是时候寻求帮助了。长话短说:我正在使用Python3.4和PyQt5构建一个应用程序,并使用cx_Freeze创建我的应用程序的独立可执行文件。在Windows和Mac OS上一切正常时,我在未安装Qt5的Ubuntu操作系统上执行冻结的应用程序时遇到了这个问题: This application failed to start because it could not find or load the Qt platform plugin "xcb

我一个星期以来一直在努力解决这个问题,所以我想是时候寻求帮助了。长话短说:我正在使用Python3.4和PyQt5构建一个应用程序,并使用cx_Freeze创建我的应用程序的独立可执行文件。在Windows和Mac OS上一切正常时,我在未安装Qt5的Ubuntu操作系统上执行冻结的应用程序时遇到了这个问题:

This application failed to start because it could not find or load the Qt platform plugin "xcb".

Available platform plugins are: linuxfb, minimal, offscreen, xcb.
该应用程序在我用来构建冻结包(安装了Qt5)的机器上运行良好

我在谷歌上搜索了一下,似乎这个问题很常见。我尝试了在以下链接中找到的所有内容:

在冻结的应用程序中,我确实有platforms目录,其中有
libqxcb.so
。为了保持一致性,我发布了ldd libqxcb.so的输出,这在安装了Qt5的两台机器上都是相同的,而在我测试的另一台机器上,我只安装了一个新的Ubuntu 14.04(没有Qt5):

这同样适用于
ldd-Eddy
(其中Eddy是应用程序可执行文件名):

在创建冻结应用程序的计算机上,我尝试了从源代码编译的Qt5和使用脱机安装程序安装的Qt5。我使用了sip4.17PyQt5.5.1源代码编译和cx\u-Freeze 3.4.3

有什么建议吗


EDIT1:我已经尝试将libQt5XcbQpa.so.5(以及libQt5QCore.so.5等)移动到我的生成目录中,但没有任何帮助。

将库文件复制到生成目录对于Linux目标来说是不够的。确保该目录位于$LD\u LIBRARY\u路径中

这些来自QT部署的说明可能会有所帮助:

除非另有说明,否则动态链接器不会搜索目录 应用程序所在的位置。有很多方法可以解决这个问题:

  • 您可以在其中一个系统库路径中安装Qt库 (例如,大多数系统上的usr/lib)
  • 链接应用程序时,可以将预定路径传递给-rpath命令行选项。这将告诉动态链接器在启动应用程序时查看此>目录
  • 您可以为应用程序编写启动脚本, 修改动态链接器配置(例如,添加 应用程序的目录到LD_LIBRARY_PATH环境变量
注意:如果您的应用程序将在“打开设置用户ID”的情况下运行 如果它将由root所有,那么LD_LIBRARY_PATH将 在某些平台上可能会被忽略。在这种情况下,使用LD_LIBRARY_PATH方法是不可取的)


尝试查找
libQt5XcbQpa.so.5
(它说找不到的那个),并将其复制到构建目录中。这是我尝试的第一件事(忘了提及),但没有帮助。我的开发机器上也没有,但应用程序的统计数据很好,所以我想问题出在其他地方:(看起来你需要一些32位版本的模块。谢谢你。尽管我在阅读你的答案之前就知道了,你是对的。不过我会为你的努力提供奖励:)。
linux-vdso.so.1 =>  (0x00007fff563a3000)
libQt5XcbQpa.so.5 => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007feddfeee000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007feddfcec000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007feddfadc000)
libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007feddf8d4000)
libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007feddf6b8000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007feddf499000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007feddf25d000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007feddefba000)
libQt5DBus.so.5 => /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 (0x00007fedded3b000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007feddeb39000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fedde931000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fedde629000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fedde41f000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fedde20d000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007feddded8000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007feddd88b000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007feddd1e5000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007feddcf53000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007feddcd35000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007feddca31000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007feddc72b000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007feddc515000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007feddc150000)
/lib64/ld-linux-x86-64.so.2 (0x00007fede02f4000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007feddbf4b000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007feddbd47000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007feddbb41000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007feddb917000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007feddb6fe000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007feddb4d8000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007feddb293000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007feddb055000)
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007feddae00000)
libicui18n.so.52 => /usr/lib/x86_64-linux-gnu/libicui18n.so.52 (0x00007fedda9f9000)
libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007fedda680000)
libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007fedda456000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007fedda253000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fedda04d000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007fedd9e36000)
libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007fedd9c31000)
libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007fedd9a2e000)
libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007fedd982b000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007fedd9625000)
libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007fedd9423000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007fedd921d000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007fedd9011000)
libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fedd8df5000)
libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007fedd7588000)
linux-vdso.so.1 =>  (0x00007fffc812e000)
libpython3.4m.so.1.0 => /home/daniele/Desktop/eddy/build/Eddy-0.4-gpl-linux64/./libpython3.4m.so.1.0 (0x00007fab72345000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fab72127000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fab71d62000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fab71b38000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fab7191f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fab7171b000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fab71518000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fab71212000)
/lib64/ld-linux-x86-64.so.2 (0x00007fab7297a000)