IPython / Jupyter安装扩展

时间:2015-03-23 21:39:03

标签: ipython ipython-notebook jupyter

我在IPython中安装扩展程序时遇到了麻烦。问题是我无法自动加载扩展,我已经按照github页面中的说明操作但它不起作用。根据主页我需要通过添加一些行来修改custom.js文件。我想安装codefolding,hide_input_all和runtools扩展。这就是我的custom.js文件的外观:

// activate extensions only after Notebook is initialized
require(["base/js/events"], function (events) {
$([IPython.events]).on("app_initialized.NotebookApp", function () {
 /* load your extension here */
 IPython.load_extensions('usability/codefolding/codefolding')
 IPython.load_extensions('usability/runtools/runtools')
 require(['/static/custom/hide_input_all.js'])
 });
});

如果我手动调用扩展程序,例如,如果我键入

,扩展程序就可以正常工作
%%javascript
IPython.load_extensions('usability/runtools/runtools/main');

runtools出现并且工作正常,但我希望自动加载扩展,而不是每次都要手动调用它们。有人能告诉我我的错误在哪里吗?

1 个答案:

答案 0 :(得分:3)

语法有一些变化。现在,$可能无法在custom.js加载时定义,因此不会像

那样
$([IPython.events]).on("app_initialized.NotebookApp", function () {
    IPython.load_extensions("whatever");
});
你应该做点什么

require(['base/js/namespace', 'base/js/events'], function(IPython, events) {
    events.on('app_initialized.NotebookApp', function(){
        IPython.load_extensions("whatever");
    })
});

对大括号和括号进行适当的更改。对我来说,前者会更频繁地工作,但肯定并非总是如此;它可能会失败~1 / 3。

如果这不适合您,请打开开发人员工具(或与您的浏览器相关的任何内容),并查看javascript控制台是否有错误。这将有助于弄清楚出了什么问题。