Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found"
-
@Pablo-J-Rogina said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":
UI of the host..
Yes that was my goal (docker with gui)! and above mentioned was my error when I try GUI on docker.! Anyway thanks!
-
@yashwant said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":
that was my goal (docker with gui)!
Yes, I understand that. Please take into account that this issue is not related (or produced by) Qt itself so the solution might come from some other source(s), not only this forum
-
@jeremy_k said in Using PyQt5 with opencv-python (cv2) causes error "could not load Qt platform plugin xcb even though it was found":
worka
Hello guys, so the problem is that
import cv2
setsQT_*
env vars.
I came to this workaround, maybe it will help someone:import cv2 for k, v in os.environ.items(): if k.startswith("QT_") and "cv2" in v: del os.environ[k]
-
@Hikari-Tretaki, muito obrigado por sua ajuda. Também consegui resolver o meu problema com sua dica.
-
@Hikari-Tretaki Thank you so much, installing opencv-python-headless fixed the issue
-
@Hikari-Tretaki MAN, I LOVE YOU SO MUCH. THANKS!
-
I also have this problem, my environments are
1, OS: ubuntu20.04
2, conda: 4.13
3, PyQt5: 5.15.2
4, local Qt5: 5.15.6
5, opencv- python 4.5.xIt really takes several days to find a solution, @jeremy_k gave almost the solution. I use PyQt5 + OpenCV-python on conda virtual environment,
summarize the solutions :1, delete cv2/libqxcb.so, it works for pyqt5 which has its own version of Qt, but opencn-python doesn't work for other application which isn't relevant to PyQt5
2, if pyside2 is installed, pyside2 has its owen version of Qt, so add below code at the beginning of python program
``` import PySide2 dirname = os.path.dirname(PySide2.__file__) plugin_path = os.path.join(dirname, 'plugins', 'platforms') os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path ```
this solution works, at expense of intalling pyside2 which is 400M+
3, PyQt5 has its own version of Qt,similiar to above, add below code at the beginning of python program
``` import PyQt5 dirname = os.path.dirname(PyQt5.__file__) plugin_path = os.path.join(dirname, 'Qt5','plugins', 'platforms') os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
this soltuion is fine,