使用OpenCV时遇Qt wayland平台插件缺失问题求助
解决Ubuntu 22.04下OpenCV imshow报Qt Wayland插件缺失问题
问题详情
运行以下OpenCV代码:
import cv2 import os dir_path = './images' images = [cv2.imread(f'{dir_path}/{file_name}') for file_name in os.listdir(dir_path)] cv2.imshow('bike', images[0])
触发报错:
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in "pathtoproject/venv/lib/python3.10/site-packages/cv2/qt/plugins"
系统环境:Ubuntu 22.04.1 LTS x86_64
已安装依赖包:
numpy 1.24.1 opencv-python 4.7.0.68 qtconsole 5.4.0 QtPy 2.3.0
已尝试安装pywayland、qt5-wayland,但无法找到对应插件文件复制到虚拟环境的指定目录。
解决方案
- 方法1:强制使用X11后端运行
Ubuntu 22.04默认采用Wayland,直接通过环境变量指定X11后端执行脚本:
QT_QPA_PLATFORM=xcb python your_script.py
若需永久生效,将环境变量添加到shell配置文件:
echo "export QT_QPA_PLATFORM=xcb" >> ~/.bashrc source ~/.bashrc
- 方法2:安装系统级Qt Wayland插件
系统可能缺少Qt Wayland的平台插件,执行以下命令安装:
sudo apt install qtwayland5
安装后OpenCV会自动识别系统级插件路径,无需手动复制文件到虚拟环境。
- 方法3:手动指定Qt插件路径
如果前两种方法无效,在代码开头添加以下内容,指定系统默认的Qt平台插件目录:
import os os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = '/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms'
该目录包含系统安装的wayland插件,可被OpenCV调用。
内容的提问来源于stack exchange,提问作者Maxim Kamanin
相关产品推荐
相关产品推荐

