2

我在 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 出现并完美运行,但我希望自动加载扩展,而不必每次都手动调用它们。有人能告诉我我的错误在哪里吗?

4

1 回答 1

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 控制台是否有错误。这将有助于找出问题所在。

于 2015-04-04T20:46:42.740 回答