我在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出现并且工作正常,但我希望自动加载扩展,而不是每次都要手动调用它们。有人能告诉我我的错误在哪里吗?
答案 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控制台是否有错误。这将有助于弄清楚出了什么问题。