安装labelImg时遇导入错误:找不到PyQt4.QtCore模块
解决LabelImg运行时
ImportError: No module named PyQt4.QtCore的问题 你遇到的这个错误核心是环境版本不匹配:你已经在尝试用Qt5 + Python3的组合构建LabelImg,但代码里还在调用PyQt4的模块,自然会触发导入失败。下面是具体的解决步骤:
1. 安装适配Qt5的PyQt5绑定
既然你通过brew安装了Qt5,对应的Python绑定应该用PyQt5而非PyQt4。执行以下命令安装(如果你的环境里有多个Python版本,建议用pip3确保安装到Python3环境):
pip3 install pyqt5 pyqt5-tools
2. 修复ustr.py中的过时导入
错误提示来自libs/ustr.py文件里的PyQt4依赖,打开这个文件,把原来的代码:
def ustr(s): from PyQt4.QtCore import QString if isinstance(s, QString): return str(s) return s
替换成适配Python3和PyQt5的版本(Python3原生支持Unicode字符串,PyQt5也已经移除了QString类):
def ustr(s): if isinstance(s, bytes): return s.decode('utf-8') return str(s)
3. 重新构建并运行LabelImg
先清理之前可能残留的旧构建文件,再重新构建Qt5+Python3版本:
make clean make qt5py3
最后用Python3启动LabelImg(如果你的python默认指向Python2,记得换成python3):
python3 labelImg.py
这样就能让LabelImg的代码和你当前的Qt5+Python3环境完全匹配,解决导入错误了。
内容的提问来源于stack exchange,提问作者Amit
相关产品推荐
相关产品推荐

