Archlinux / Python / Qt |不能同时使用OpenCV和matplotlib

问题描述 投票:0回答:1

尝试调用 pyplot.show 时收到以下错误消息。

> QObject::moveToThread: Current thread (0x55cb11264ad0) is not the object's thread (0x55cb1226c700).
> Cannot move to target thread (0x55cb11264ad0)

> qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/usr/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, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.

> Aborted (core dumped)

寻找答案,我虽然这与https://www.reddit.com/r/archlinux/comments/d6h3kl/python_qt_cant_import_matplotlibpyplot/有同样的问题,但我只是重新安装了很多软件包(几乎破坏了整个系统)我也遇到了同样的错误。

而且, matplotlib.pyplot.show() 和 opencv.imshow() 在单独使用时工作正常,但是当我使用 opencv 进行一些处理并且我想在 pyplot.show() 中显示时,错误就出现了.

我不知道如何调试 Qt,就像 u/tim-hilt 在他的帖子中所做的那样,所以这就是我目前可以提供的所有信息。我知道怎么做了。

https://pastebin.com/YAgHMQKf

提前感谢我能得到的任何回复。

python qt opencv matplotlib archlinux
1个回答
0
投票

您可以导入 matplotlib 并使其使用 tkagg:

import numpy as np
import matplotlib

matplotlib.use("tkagg")
import matplotlib.pyplot as plt
import cv2

至少在我的案例中起作用。

© www.soinside.com 2019 - 2024. All rights reserved.