問題描述
當我們撰寫 pyqt5 程式時,出現以下 error 的解決辦法
QObject::moveToThread: Current thread (0x55e28fa548d0) is not the object's thread (0x55e28fceb860). Cannot move to target thread (0x55e28fa548d0)
記憶體位置可能不同,但解法大致是相同的。
解法
個人試過有成功的方法
簡單來說,這是 OpenCV 版本過新導致的環境問題,
網路上普遍的解法有看到
- (個人有成功的方法) 使用 conda 安裝 pyqt,不要使用 pip install 安裝
建議先用 anaconda 建立一個乾淨的環境再來做這件事,
建立好乾淨的環境後,安裝 conda 版本的 pyqt,
再使用 pip 安裝 OpenCV
conda install pyqt
pip install opencv-python
其他網友的解法 (個人沒試過 or 試過失敗)
- 使用 pip 降 OpenCV 的版本 (4.3.0.36)
pip uninstall opencv-python
pip install opencv-python==4.3.0.36
pip list | grep opencv-python
- 移除 pip OpenCV 改用 apt-get 安裝 OpenCV
sudo pip uninstall opencv-python
sudo apt-get install libopencv-dev python-opencv