iPython Firefox 中的笔记本 - 警告:脚本无响应

iPython Notebook in Firefox - Warning: unresponsive script

我在 Firefox 的 iPython 笔记本上有一个很长的脚本 运行 很长一段时间。我回来了,好像挂了,所以我保存关闭了。

当我重新打开脚本时,弹出一个对话框并显示以下错误:

Warning: unresponsive script

A script on this page may be busy, or it stack overflow may have stopped responding. You can stop the script now, open the script in the debugger, or let the script continue.

选项有'continue'、'stop script'和'debug script'。单击其中任何一个都会导致相同的结果,对话框消失并且 iPython 笔记本没有响应(例如,ctrl+enter 在当前单元格中创建一个换行符而不是执行它)。

然而,最糟糕的是,脚本底部的单元格似乎已被切断。他们包含一些有价值的代码,但似乎已经消失了,这是一个非常糟糕的结果!

我试过回滚,但最后一个回滚点也显示底部被切断。非常感谢这里的任何支持!

我现在已经解决了这个问题并把它留在这里,希望它能帮助其他人。

问题的原因似乎是其中一个单元格的输出过长 - 此行以下的所有内容已在 iPython 浏览器中被截断,但我发现它仍然存在于 .ipynb 中文件,我所要做的就是删除一些输出行,当我重新打开文件时它 运行 没有问题而且我被切断的代码再次可用。

笔记本以 JSON 格式存储所有内容。就我而言,我需要删除其中一个单元格的输出,我是这样做的:

  1. 浏览到您的 iPython 笔记本目录(不是 ipython.exe 所在的目录)- 对我来说,它们在 C:\Users\myname\Documents\IPython Notebooks
  2. 右键单击有问题的 notebook.ipynb 文件,然后在文本编辑器中编辑 - 我的选择是 Notepad++
  3. 向下滚动到生成大量输出行的单元格。这些行中的每一行都在单元格的 outputs 属性 内,其中 "output_type": "stream"
  4. 删除任意数量的这些输出条目,但一定要删除 output 属性 本身以外的任何内容,并确保从尾部逗号后面到下面的逗号使得结果 JSON 格式正确

典型的输出行如下所示,删除其中的数百行使我的脚本在浏览器中再次 运行:

  {
   "output_type": "stream",
   "stream": "stdout",
   "text": [
    "\n",
    "Added 150000 records so far"
   ]
  },

也许是 Firefox 的问题。

让脚本 运行 更长

如果您发现按下 Continue 按钮会再次出现相同的对话框,那么让脚本 运行 更长的时间对您没有帮助;它只会让 Firefox 挂起更长时间。但是,如果您在按继续后可以正常使用 Firefox,则脚本可能需要额外的时间才能完成。

告诉 Firefox 让脚本 运行 更长: 在位置栏中,键入 about:config 并按 Enter。 about:config "This might void your warranty!" 警告页面可能会出现。单击 I'll be careful, I promise! 继续到 about:config 页面。

about:config 页面中,搜索首选项 dom.max_script_run_time,然后双击它。 在“输入整数值”提示中,键入 20。 按确定。

现在允许脚本 运行 更长时间,您可能不会再收到提示。

这是来自https://support.mozilla.org/en-US/kb/warning-unresponsive-script

希望对您有所帮助。