[英]How to auto-update jupyter notebook extension during development/debugging?
我嘗試為Jupyter筆記本編寫自定義擴展,如下所述: https ://towardsdatascience.com/how-to-write-a-jupyter-notebook-extension-a63f9578a38c
我使用Windows7上的Chrome開發者工具來檢查和編輯自定義擴展程序的Javascript源代碼。 我希望當按F5鍵更新頁面時,我更改后的源代碼將立即應用。
但是,如上述文章所述,我必須運行
jupyter-contrib-nbextensions.exe install
並重新啟動服務器以刷新筆記本擴展名,並查看我的代碼更改的效果。
在嘗試和開發/調試擴展時,每次細微更改后這樣做都是很煩人的。
=>是否有某種開發選項可以自動更新/重新加載擴展?
作為解決方法,我編寫了一個擴展“工作區模塊”:
https://github.com/stefaneidelloth/treezjs/tree/master/jupyter_notebook_extension/workspace_module
該擴展的目的是如果筆記本文件夾中存在文件“ workspace.js”,則將其導入。 我的擴展程序的main.js是:
define([
'require',
'jquery',
'base/js/namespace',
'base/js/events',
'notebook/js/codecell'
], function(
requirejs,
$,
Jupyter,
events,
codecell
) {
var load_ipython_extension = function() {
if (Jupyter.notebook !== undefined && Jupyter.notebook._fully_loaded) {
init();
} else {
console.log("[workspace_module] Waiting for notebook availability")
events.on("notebook_loaded.Notebook", function() {
init();
})
}
};
function init(){
console.log("[workspace_module] trying to load workspace.js")
var moduleScript = document.createElement('script');
moduleScript.setAttribute('type','module');
moduleScript.setAttribute('src','workspace.js');
document.body.appendChild(moduleScript);
}
return {
load_ipython_extension: load_ipython_extension
};
});
workspace.js重定向到我的實際擴展名:
import './treezjs/src/treezJupyterNotebook.js';
這樣,我可以在開發期間修改代碼,而無需重新執行install命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.