使用QWebEngineView触发LLVM架构不匹配错误致程序崩溃求助
问题结论
这个崩溃问题确实和QWebEngine依赖的Blink(Chromium)引擎直接相关。
原因解析
QWebEngine底层基于Chromium内核,其V8 JavaScript引擎的JIT编译过程依赖LLVM库。你遇到的LLVM ERROR: 64-bit code requested on a subtarget that doesn't support it!错误,本质是Chromium在生成64位代码时,找不到兼容的LLVM环境支持——Miniconda安装的PySide2 5.15.2.1预编译包,可能未正确打包所需的LLVM依赖,或者你的conda环境与系统层面的库存在架构/版本冲突。
另外你提到另一台机器无需额外安装libclang即可运行,大概率是因为那台机器的系统已预装了与PySide2兼容的LLVM/libclang版本,或者使用的PySide2版本/环境配置不存在依赖缺失问题。
可行解决方案
安装系统兼容的LLVM依赖
在Ubuntu 22.04.3上安装对应版本的LLVM和libclang:sudo apt install libclang-14-dev llvm-14然后设置环境变量让PySide2识别到该库:
export LLVM_CONFIG=/usr/bin/llvm-config-14之后再运行你的Python程序。
切换到PySide6
PySide6对Ubuntu 22.04这类现代系统的兼容性更优,其QWebEngine模块的依赖处理更完善。执行以下命令安装:# conda环境下 conda install pyside6 # 或pip安装 pip install pyside6然后修改代码中的导入语句适配PySide6,例如:
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton from PySide6.QtWebEngineWidgets import QWebEngineView验证conda环境架构
执行conda info查看输出中的platform字段,确认是linux-64,如果是32位环境,需要重新创建64位conda环境:conda create -n new_env python=3.10 -c conda-forge conda activate new_env pip install pyside2==5.15.2.1
内容的提问来源于stack exchange,提问作者MiaPlan.de

