Python 脚本的“引擎不可用”,或者“This script is set to … but the code is written in …”

Senzoukria 里的 Python 脚本需要一个引擎,它从 senzoukria.com 上一次性下载下来,之后完全离线运行。“引擎不可用”的意思是它没有启动起来;JavaScript 脚本不受影响。另有一条单独的消息,会在一个脚本声明的语言和它的代码不一致时提醒你。

Senzoukria · 故障排除 · 更新于 2026 年 9 月


概要

引擎状态
“引擎不可用” — “已测得:引擎没有启动。Python 脚本暂时挂起;你的 JavaScript 脚本不受影响。”
下载
一次性,大约 16 MB,来自 senzoukria.com
语言不一致
“此脚本设为 {declared},但其中的代码是用 {detected} 写的……”
几个按钮
安装 Python 引擎 · 重试 · 切换到 {detected}

你会看到什么

在脚本页面上,引擎那一条会显示“引擎不可用”,并附“已测得:引擎没有启动。Python 脚本暂时挂起;你的 JavaScript 脚本不受影响。”,后面跟着具体原因,以及一个“重试”按钮。另外,运行一个脚本时可能会看到“此脚本设为 {declared},但其中的代码是用 {detected} 写的。它会以一个指向任意行的语法错误失败。”,并附一个“切换到 {detected}”。

为什么会这样

Python 引擎(Pyodide)并不是打包在应用里的。“安装 Python 引擎”会从 senzoukria.com 一次性把它的文件下载下来——那是应用的安全策略唯一允许的远端来源——把它们存在本机,然后在沙箱里启动解释器。它失败的情形有:下载没能走完,本机存储拒绝这些文件(“indexedDB 不可用”、“写入被拒绝”、“缓存中缺少文件”),或者引擎文件不是预期的形状。一旦装好,它完全离线运行。

语言不一致这条消息出现在任何一次运行之前:切换语言从来不会翻译代码,所以一段被标成 Python 的 JavaScript 代码,只会在某个任意的行上失败。

如何解决

  • 检查你的互联网连接,然后点“重试”。
  • 如果它在同一个地方又失败了,请重启应用再点“重试”。
  • 碰到语言不一致时,点“切换到 {detected}”,或者用所声明的那种语言把代码重写一遍。
  • 在此期间继续用 JavaScript 脚本;它们不需要引擎,而且跑在同一个沙箱里。

它并不意味着什么

  • 不是你脚本逻辑的问题:是引擎没有启动起来。
  • 也不代表脚本在用网络:脚本从来没有网络访问权。

何时联系技术支持

如果这些都不管用,请通过 菜单 → 问题反馈 或者在 Senzoukria 的 Discord 上联系技术支持。请把“引擎不可用”后面显示的那个原因和你的操作系统一起复制过来。

同一栏目

其他语言版本

常见问题

Python 引擎会把我的脚本发到什么地方去吗?
不会。安装完成后,引擎完全离线运行,不会把任何脚本或者数据发往任何地方。
也有 C++ 这个选项吗?
有。C++ 工具链(编译成 WebAssembly 的 Clang)是用同样的方式安装的,而且显示的是同一套引擎状态。

继续阅读