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

QWebEngineView加载Pyodide(WebAssembly模块)失败问题求助

解决PyQt5 WebEngineView中Pyodide加载失败的问题

问题核心

你碰到的js: Uncaught (in promise) TypeError: wasm function signature contains illegal type错误,主要是因为PyQt5内置的QWebEngineView依赖的Chromium版本过旧,不支持Pyodide 0.23.4用到的WebAssembly新特性。而本地Opera GX是新版浏览器,自然能正常运行。另外你的Python代码里有个低级错误:用了JavaScript风格的//注释,Python只认#作为注释符号,这会直接导致代码运行报错。

解决方案

方案1:升级到PyQt6(推荐)

PyQt6的QWebEngineView基于更新的Chromium内核,对WebAssembly支持更完善。

修改后的Python代码:

from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt6.QtWebEngineWidgets import QWebEngineView
from PyQt6.QtCore import QUrl
import sys

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 设置主窗口
        self.setWindowTitle("PyQt6 App with QWebEngineView")
        self.setGeometry(100, 100, 800, 600)

        # 创建QWebEngineView组件
        self.browser = QWebEngineView()

        # 本地服务器URL
        url = QUrl("http://localhost:8000/monaco.html")

        # 设置加载的URL
        self.browser.setUrl(url)

        # 布局设置
        layout = QVBoxLayout()
        layout.addWidget(self.browser)

        container = QWidget()
        container.setLayout(layout)
        self.setCentralWidget(container)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())

安装PyQt6依赖:

pip install PyQt6 PyQt6-WebEngine

方案2:降级Pyodide版本(适配PyQt5)

如果坚持使用PyQt5,将Pyodide降级到0.20.0版本,该版本的WebAssembly特性兼容旧版Chromium。

修改HTML中的Pyodide加载链接:

<!-- 先加载Pyodide -->
<script src="https://cdn.jsdelivr.net/pyodide/v0.20.0/full/pyodide.js"></script>

同时修改初始化代码里的indexURL:

pyodide = await loadPyodide({
    indexURL: "https://cdn.jsdelivr.net/pyodide/v0.20.0/full/"
});

方案3:修复Python代码的注释错误

无论采用哪个方案,先把Python代码里所有的//替换成#,否则代码根本无法启动。

额外检查

  1. 确认本地Web服务器正常运行,能通过浏览器访问http://localhost:8000/monaco.html
  2. 运行Python程序前,关闭所有残留的PyQt进程,避免缓存干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:55:09