Yocto构建RPi 3B+ Qt5镜像时pip安装pyqtwebengine找不到QtCoremod.sip
问题根因
- Yocto通过BitBake预安装的PyQt5版本,和你后续用pip安装的pyqtwebengine版本不兼容,pip安装包的默认sip路径检索逻辑,不会识别Yocto自定义的系统级sip存放路径
/usr/share/sip/PyQt5/,所以会报文件找不到的错误。 - 你的初始local.conf配置有两个问题:一是存在拼写错误
pyton3-pip,二是漏加了PyQtWebEngine对应的Yocto预制包,完全不需要额外用pip安装该模块。
解决方案
优先推荐用Yocto原生包管理处理,避免版本冲突:
- 先清理RPi上之前pip安装产生的损坏文件,执行:
pip3 uninstall -y pyqtwebengine PyQt5-sip - 修改local.conf配置,修正拼写错误同时补充需要的包:
IMAGE_INSTALL_append = " python3-pyqt5 python3-pip python3-dev python3-pyqtwebengine"
注:部分Yocto版本的PyQtWebEngine包名可能为
python3-pyqt5-webengine,如果编译时提示包不存在,替换成对应名称即可。
- 重新编译镜像烧录到RPi 3B+即可,系统预安装的所有PyQt相关模块版本完全匹配,可直接导入你需要的所有模块。
如果临时需要用pip安装,执行安装前指定sip路径并对齐版本即可:export SIP_INCDIR=/usr/share/sip/PyQt5 && pip3 install pyqtwebengine==<你的系统预装PyQt5的版本号>
内容的提问来源于stack exchange,提问作者Vettons.K
相关产品推荐
相关产品推荐

