我正在构建一个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)
答案 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