opencv:无法加载“”中的Qt平台插件“xcb”,即使已找到

ben*_*min 7 python qt opencv visual-studio python-venv

在使用 virtualenvwrapper 设置 venv 之后,我在 ubuntu wsl 上安装了 opencv-python (我在 Visual Studio 代码中使用 wsl)。运行此代码时(出现在本 OCR 指南的一篇文章中):

import argparse
import cv2

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True)
args = vars(ap.parse_args())

image = cv2.imread(args["image"])
cv2.imshow("I", image)
Run Code Online (Sandbox Code Playgroud)

在终端上使用此命令:

python script.py --image temp.png
Run Code Online (Sandbox Code Playgroud)

我得到:

qt.qpa.xcb: could not connect to display 
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/ben123/.local/bin/.virtualenvs/ocr_venv/lib/python3.8/site-packages/cv2/qt/plugins" 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: xcb.
Run Code Online (Sandbox Code Playgroud)

vscode 中的解释器是正确的(venv 的解释器),当我输入时, pip list我得到

Package       Version
------------- --------
numpy         1.22.2
opencv-python 4.5.5.62
pip           22.0.3
setuptools    60.6.0
wheel         0.37.1
Run Code Online (Sandbox Code Playgroud)

在这一点上将不胜感激任何帮助,因为我花了很多时间却一无所获。

我尝试过的事情:

  1. 按照指南进行安装。给出了同样的错误。
  2. 遵循该网站的旧指南要复杂得多并且效果不佳。
  3. 卸载 opencv-python 并再次安装 opencv-python/ opencv-python-contrib/ opencv-python-headless/ opencv-python-contrib-headless (一次只能安装其中一个)
  4. 关注线程,因为它有类似的问题
  5. 从字面上重置我的 wsl 几次只是为了确保我没有多个 python/opencv 版本来搞乱这个。
  6. 尝试直接使用官方文档安装(到 wsl venv)opencv
  7. 尝试完全放弃 wsl 并使用 anaconda 安装 opencv 但即使这样也不起作用。

小智 9

我在完全不同的上下文中遇到了同样的错误。

发现问题出在我的虚拟环境中的 PyQt5 安装。检查路径中是否有 PyQt

/home/ben123/.local/bin/.virtualenvs/ocr_venv/lib/python3.8/site-packages/

如果是这样,请将其删除

$ pip uninstall <PyQT package installed>
Run Code Online (Sandbox Code Playgroud)

例子:

$ pip uninstall PyQt5
Run Code Online (Sandbox Code Playgroud)

然后重新安装opencv-python

$ pip uninstall opencv-python
$ pip install opencv-python
Run Code Online (Sandbox Code Playgroud)

希望有效!


小智 8

卸载 opencv 并安装类似的无头版本对我有用。

$ pip install opencv-python-headless
Run Code Online (Sandbox Code Playgroud)