使用WSL中的Ubuntu系统做开发时安装的xfce桌面,但是在使用PYQT5时出现下面问题1 2 3 4 5 6 7 iotts@IOTTS:~/Desktop$ python pyqt5.py 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. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb. Aborted (core dumped)
我先来查看一下系统使用的显示框架
查看 Ubuntu 使用的是 X11 还是 Wayland 显示框架,你可以通过以下几种方法来确定:
查看环境变量:在终端中输入以下命令查看当前的显示服务器:
如果输出 x11,则表示当前会话使用的是 X11;如果输出 wayland,则表示当前会话使用的是 Wayland。
在登录界面查看:在登录界面,点击用户名旁边的齿轮图标,选择不同的显示服务器(会显示为“Ubuntu”或“Ubuntu on Xorg”)。选择“Ubuntu on Xorg”使用的是 X11,而“Ubuntu”通常使用 Wayland。
通过日志文件查看:你可以查看系统日志文件来确认使用的显示服务器。在终端中输入以下命令:
如果文件存在,表示系统正在使用 X11。对于 Wayland,你可以查看 journalctl 的输出:1 journalctl | grep -i wayland
如果有 Wayland 相关的日志信息出现,说明系统正在使用 Wayland。
在Ubuntu上,xcb是X11协议的C语言接口库,通常在安装图形界面时会默认安装。如果你需要手动安装或确保已安装xcb,可以使用以下命令:
打开终端。 使用以下命令安装 xcb 相关的开发库:1 sudo apt-get install libxcb1-dev libxcb-util0-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev
这些命令会更新你的软件包列表并安装xcb及其一些常用的依赖库。如果你只是需要运行X11应用程序,可能不需要安装所有这些开发库,但安装它们可以确保你有一个完整的开发环境。