qt.qpa.plugin: Could not load the Qt platform plugin "xcb" 에러 해결 방법입니다.
2024. 3. 27 최초작성
2024. 3. 28 주의사항 추가
pyQt5만 사용할때에는 문제 없다가 opencv와 같이 사용시 다음과 같은 오류가 발생했습니다.
QObject::moveToThread: Current thread (0x2a71090) is not the object's thread (0x2ddb230).
Cannot move to target thread (0x2a71090)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/webnautes/miniconda3/envs/pyqt5/lib/python3.9/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, webgl.
중지됨 (코어 덤프됨)
해결방법은 간단합니다. 다음 경로에 있는 libqxcb.so 파일을 제거해주면 됩니다. 다음 경로에서 초록색은 사용하는 conda 종류에 따라 달라지며 빨간색은 가상환경 이름에 따라 달라지며 파란색은 파이썬 버전에 따라 달라집니다.
rm -rf ~/miniconda3/envs/tensorflow/lib/python3.9/site-packages/cv2/qt/plugins/platforms/libqxcb.so
주의할점은 pyQt5없이 opencv만 로드하여 사용할때에는 다음 에러가 발생합니다.
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "/home/webnautes/miniconda3/envs/pytorch/lib/python3.10/site-packages/cv2/qt/plugins"
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
정리하면
pyQt5와 opencv를 같이 사용하려면 위에서 언급한 libqxcb.so 파일을 삭제해야 하고
opencv만 사용하려면 libqxcb.so 파일이 필요한 상황입니다.
이 문제가 근본적으로 해결되기 전까진 miniconda나 anaconda를 사용해서 파이썬 가상환경을 분리하여 opencv만 따로 사용할때와 pyQt5와 opencv를 같이 사용할때를 나눠서 사용해야 할듯합니다.
참고
'Qt > Qt 개발환경' 카테고리의 다른 글
Raspberry Pi 4에 Qt5 설치 (0) | 2023.10.05 |
---|---|
Ubuntu 20.04에 QT 설치하기 (0) | 2023.10.05 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!