通过Jupyter内核执行代码时等待内核就绪(Jupyter Notebook扩展)

时间:2018-10-22 20:57:04

标签: jupyter-notebook

我正在构建一个Jupyter Notebook扩展,在其中,一旦初始化期间内核准备就绪,我需要执行一些代码。我正在按以下方式执行代码,但我注意到有时在加载扩展程序之前内核已准备就绪,因此自定义事件中的代码永远不会执行。

Jupyter.notebook.events.one('kernel_ready.Kernel', () => {
     // Couldn't execute this line, because kernel was already
     // ready when this event handler was attached
     Jupyter.notebook.kernel.execute(someCode)
});

我可以只相信笔记本执行代码而不必担心内核准备就绪吗?我猜有某种类型的队列,所以代码最终将被执行。

Jupyter.notebook.kernel.execute(someCode)

2 个答案:

答案 0 :(得分:0)

我是Java语言的初学者,但也许我可以提供一些信息,因为您的问题已部分解决,并且是我几天前发布的问题(Jupyter notebook custom.js not applied when using "Restarting & Run All")。

将我的代码放入

Jupyter.notebook.events.one('kernel_ready.Kernel', () => {

custom.js文件上的

允许我确保在加载脚本时执行该命令。

答案 1 :(得分:0)

在nbextension预订sudo tee /usr/local/bin/xdg-open <<EOF #!/bin/sh powershell.exe -c start "'\$@'" EOF sudo chmod +x /usr/local/bin/xdg-open 事件之前,内核可能已完全准备就绪。在这种情况下,我们可以直接使用内核:

kernel_ready