You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS8下Python3.9虚拟环境导入QtWebEngineWidgets缺失libQt5QmlModels.so.5错误

问题原因
  • 动态链接库默认搜索路径未包含虚拟环境私有目录:CentOS 8的系统ld动态链接器默认不会扫描Python虚拟环境内site-packages下的第三方库路径,即便对应so文件存在也无法定位。
  • PyQt5 对应Python3.9的pip包rpath配置异常:Python3.9版本对应的PyQt5 pip安装包编译时未正确配置运行时搜索路径(rpath),无法自动指向自身携带的Qt依赖库目录;而Python3.6/3.8对应的PyQt5版本包rpath配置正常,因此无该问题。
  • QT_DEBUG_PLUGINS参数不生效的原因:报错发生在Python import阶段的动态库加载环节,还未进入Qt插件加载流程,因此该调试参数不会产生额外输出。
  • 全局环境正常的原因:虚拟环境外安装的PyQt5要么通过系统包管理器安装,依赖库路径已提前写入系统动态库配置;要么全局pip安装时自动注册了库路径,因此可以正常定位。
解决方案

按生效范围从临时到永久排序,按需选择即可:

  • 单次临时生效:运行程序前手动添加库路径到环境变量
export LD_LIBRARY_PATH=venv/lib64/python3.9/site-packages/PyQt5/Qt5/lib:$LD_LIBRARY_PATH
# 此时再执行导入或者程序启动命令即可正常运行
  • 虚拟环境永久生效:修改虚拟环境激活脚本,打开venv/bin/activate文件,在文件末尾追加上述export语句,后续每次执行source venv/bin/activate激活环境时会自动配置库路径,无需手动执行。
  • 系统级永久生效:适合固定路径的虚拟环境使用,执行以下操作:
  1. 新建动态库配置文件:sudo vim /etc/ld.so.conf.d/pyqt5-venv.conf
  2. 写入虚拟环境PyQt5库的绝对路径,例如:/home/你的用户名/你的项目目录/venv/lib64/python3.9/site-packages/PyQt5/Qt5/lib
  3. 刷新系统动态库缓存:sudo ldconfig
  • 版本降级方案:如果不想修改环境配置,可直接安装rpath配置正常的PyQt5版本组合:
pip install PyQt5==5.15.4 PyQt5-sip==12.9.0 PyQtWebEngine==5.15.4

内容的提问来源于stack exchange,提问作者Robe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:45:07