在运行一个依赖PyQt5 作为其 GUI 的 Python 应用程序时,我在 Ubuntu 和 Debian 上都遇到了同样的问题:
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in ""
even though it was found. This application failed to start because
no Qt platform plugin could be initialized. Reinstalling the
application may fix this problem.
我很容易在 Ubuntu 上修复它。 Debian 的修复要困难得多。以下是我的解决方案。
免责声明
我不是经验丰富的 Linux 用户。如果“解决方案”或多或少是用胶带缝合在一起的,请原谅我。
1。 Ubuntu
在 Ubuntu 上,我用这个解决方案快速修复了它:
$ sudo apt-get install --reinstall libxcb-xinerama0
2。 Debian
在 Debian 上,我花了很长时间才找到修复程序。我首先尝试了在此页面上找到的几件事:
https://askubuntu.com/questions/308128/failed-to-load-platform-plugin-xcb-while-launching-qt5-app-on-linux-without
喜欢:
$ sudo apt-get --reinstall install libxcb-util1
$ sudo apt-get --reinstall install libqt5x11extras5
$ sudo apt-get --reinstall install libqt5dbus5
$ sudo apt-get --reinstall install libqt5widgets5
$ sudo apt-get --reinstall install libqt5network5
$ sudo apt-get --reinstall install libqt5gui5
$ sudo apt-get --reinstall install libqt5core5a
$ sudo apt-get --reinstall install libdouble-conversion1
$ sudo apt-get --reinstall install libxcb-xinerama0
$ sudo apt-get --reinstall install '^libxcb.*-dev'
$ sudo apt-get --reinstall install '^libxcb-util.*-dev'
没有任何帮助。我想知道:这可能与我在我的 Debian 机器上部署 Python3.9 venv 的事实有关吗?在 Ubuntu 上,我在原生 Python3.8 中工作,所以我猜所有的安装和重新安装都可以正常工作。但有了虚拟环境,可能就没那么简单了?
我的理论:我相信虚拟环境在某处存储了自己的 Qt5 库,并且所有安装和重新安装都发生在“本机”Qt5 库上 - 与虚拟环境中的 Qt5 库不同。 em>
无论如何,我终于尝试了:
$ ldd ~/Python-3.9.2/py3.9.2-env/lib/python3.9/site-packages/PyQt5/Qt/plugins/platforms/libqxcb.so | grep "not found"
libxcb-util.so.1 => not found
libxcb-util.so.1 => not found
此命令找出给定.so 文件的缺失依赖项。然后我从这个网页下载了libxcb-util.so.1和libxcb-util.so.1.0.0:
https://software.opensuse.org//download.html?project=home%3Astevenpusser%3Alibxcb-util1&package=libxcb-util1
我在这个论坛上找到的:
http://forums.debian.net/viewtopic.php?f=6&t=135672
我将libxcb-util.so.1 和libxcb-util.so.1.0.0 添加到~/Python-3.9.2/py3.9.2-env/lib/python3.9/site-packages/PyQt5/Qt/plugins/platforms/ 文件夹中,然后将此文件夹添加到我的$LD_LIBRARY_PATH 环境变量中:
$ export LD_LIBRARY_PATH=/home/johan/Python-3.9.2/py3.9.2-env/lib/python3.9/site-packages/PyQt5/Qt/plugins/platforms:$LD_LIBRARY_PATH
终于,python 应用程序工作了!