Vscodium更新导致Jupyter扩展失效(Webview相关问题)
Vscodium更新导致Jupyter扩展失效(Webview相关问题)
我太懂你现在的糟心感受了——刚把Vscodium-bin更到1.78.1.23130-1,用来写论文的Jupyter扩展直接罢工,试了降级扩展、加工作区信任都没用,看着调试面板里的一堆错误完全摸不着头脑对吧?
先帮你拆解下核心问题:
从你贴的错误日志来看,其实是两个关联的兼容性问题:
- API提案不匹配:Jupyter扩展(
ms-toolsai.jupyter)在请求一个叫notebookControllerKind的API提案,但这个提案在新版Vscodium里已经不存在了——要么是被正式定型改名,要么是直接被废弃了,旧版扩展还在调用这个失效的接口,自然没法正常运行。 - Webview内容安全策略(CSP)限制:新版Vscodium收紧了Webview的安全规则,Jupyter扩展的前端代码里有未被授权的内联脚本,不符合新的CSP指令,导致Webview(就是你看到的那个iframe)加载失败。
下面给你几个可行的解决办法,按优先级来:
优先尝试:非降级的修复方案
- 安装Jupyter扩展的预览版:官方通常会针对编辑器的新版本提前在预览版里修复兼容性问题。你可以在Vscodium的扩展市场找到Jupyter扩展,点击「安装另一个版本」,选择最新的Insider(预览)版本试试,大概率能解决API和CSP的适配问题。
- 临时放宽Web安全限制(救急用):如果赶时间写论文,可以通过启动参数临时绕过CSP限制,但这有安全风险,别长期用。在终端输入:
用这个命令启动Vscodium,看看Jupyter能不能正常运行,用完记得关掉,换回正常启动方式。codium --disable-web-security --user-data-dir=/tmp/vscodium-temp - 排查冲突扩展:有时候其他扩展会干扰Jupyter的Webview加载。你可以用安全模式启动Vscodium:
如果Jupyter能正常工作,就逐个启用扩展,找出哪个是冲突源,暂时禁用它。codium --safe-mode
万不得已:降级Vscodium到兼容版本
如果上面的方法都没用,那就只能降级Vscodium了,步骤如下:
- 卸载当前版本:
(如果你用的是其他AUR助手,比如paru,把yay -Rns vscodium-binyay换成对应的命令就行) - 安装旧版本:找到和Jupyter扩展兼容的旧版本(比如1.78.0系列),用指定版本号安装:
(把yay -S vscodium-bin=1.78.0.xxxx-1xxxx替换成具体的版本号,你可以在AUR的包历史页面找到对应版本) - 暂时锁定版本,避免自动更新:
yay -Syu --ignore vscodium-bin
补充:错误信息的简单解释
- 关于
notebookControllerKind的错误:Vscode/Vscodium的新API会先以「提案」的形式推出,让扩展开发者适配,等成熟后要么正式加入稳定API,要么被废弃。这次Vscodium更新后,这个提案被移除/改名了,但Jupyter扩展还没同步更新,所以出现匹配失败。 - CSP报错:Webview的安全策略是为了防止恶意脚本,新版Vscodium收紧了规则,Jupyter扩展的前端内联脚本没有用正确的哈希/随机数(nonce)标记,被Electron内核拒绝执行,导致Webview加载失败。
备注:内容来源于stack exchange,提问作者evan
相关产品推荐
相关产品推荐

