【问题标题】:Reloading Jupyter Widgets for rapid development重新加载 Jupyter 小部件以进行快速开发
【发布时间】:2020-03-29 23:15:03
【问题描述】:
我目前正在开发一个自定义 Jupyter 小部件。当我在笔记本中使用 %%javascript 魔术包含必要的 javascript 时,如果我进行更改,我可以简单地重新加载这些单元格以更新我的小部件,这对于开发来说很方便。
有没有一种方法可以使用存储在笔记本之外的 javascript 进行这种轻松的重新加载?因为现在当我想查看更改的效果时,我必须完全重新启动 Jupyter。
一个相关问题:当我在外部存储 javascript 时,Jupyter 仍然知道在哪里可以找到它,即使我没有明确加载它。 Jupyter 在哪里寻找自定义小部件的 javascript?
【问题讨论】:
标签:
python
jupyter-notebook
widget
jupyter
【解决方案1】:
好吧,显然我在清理输出时不够勤奋,这就是为什么我得到奇怪的结果。我在下面发布我的解决方案,以防它帮助其他人。
我的 javascript 在单独的 .js 文件中。我通过一个包含以下内容的单元格将其加载到我的笔记本中:
from IPython.display import display, HTML
with open("javascript.js") as f:
data = f.read()
text = """<div style="overflow:auto">Loading scripts</div>
<script type="text/javascript">
{}
</script>""".format(data)
display(HTML(text))
这个单元的执行插入了必要的javascript。当底层 javascript 文件发生更改时,只需重新运行单元格以更新 javascript。然后当你实例化一个新的小部件时,它就会有更新的代码。