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)是用同样的方式安装的,而且显示的是同一套引擎状态。