首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在开发/调试过程中自动更新jupyter笔记本扩展?

如何在开发/调试过程中自动更新jupyter笔记本扩展?
EN

Stack Overflow用户
提问于 2019-04-02 12:22:52
回答 1查看 638关注 0票数 3

我试图为木星笔记本编写一个自定义扩展,如下所述:https://towardsdatascience.com/how-to-write-a-jupyter-notebook-extension-a63f9578a38c

我使用Windows7上的Chrome工具来检查和编辑我的自定义扩展的Javascript源代码。我希望当按下F5更新页面时,修改后的源代码将立即应用。

但是,正如上述文章所述,我必须运行

代码语言:javascript
复制
jupyter-contrib-nbextensions.exe install

并重新启动服务器,以刷新笔记本扩展并查看代码更改的效果。

在每次进行小更改之后,在开发/调试扩展时,这样做都是很烦人的。

=>Is有某种自动更新/重新加载扩展的开发选项吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 07:02:03

作为一项工作,我编写了一个扩展"Workspace模块“:

module

如果文件"workspace.js“存在于笔记本文件夹中,则该扩展名的目的是导入该文件。我扩展的main.js是:

代码语言:javascript
复制
    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重定向到我的实际扩展:

代码语言:javascript
复制
import './treezjs/src/treezJupyterNotebook.js';

这样,我就可以在开发过程中调整代码,而无需重新执行安装命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55474703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档