将ipython小部件移植到更新的ipywidget API

时间:2015-12-04 15:41:55

标签: ipython-notebook jupyter-notebook

我试图将euroscipy2014教程(也是ipython cookbook的基础)移植到较新的ipywidget API。我按照我在相对ipython documentation上找到的指示成功转换了4个笔记本中的3个,但我在移植第3个笔记本时感到麻烦(03_custom.ipynb)。

我改变了js代码:

%%javascript
// We import the WidgetManager.
require(["widgets/js/widget"], function(WidgetManager){ 

// We define the NumberSelector view here.
var NumberSelector = widget.DOMWidgetView.extend({

    // Function for rendering the view.
    render: function(){

为:

%%javascript
// We import the WidgetManager.
require(["widget"], function(WidgetManager){ 

// We define the NumberSelector view here.
var NumberSelector = widget.DOMWidgetView.extend({

    // Function for rendering the view.
    render: function(){

使用require(["widget”] …代替require(["widgets/js/widget …widget.DOMWidgetView.extend代替IPython.DOMWidgetView.extend 但是当我在代码单元4上测试小部件时(我从js控制台登录):

Couldn't create a view for model id '8727d6f51f804c7aa582b3d95b3c630d'  --  Error: Class NumberSelector not found in registry (…)

我猜js代码中的最后一行:

WidgetManager.register_widget_view('NumberSelector', NumberSelector);

没用。 (也许.register_widget_view不再是有效的通话)。

你知道如何解决这个问题吗?谢谢!

我打开了一个问题here,但我认为这种API的抗议可能是一个普遍感兴趣的主题,所以我也在这里发布一个问题。

https://github.com/rossant/euroscipy2014/issues/2

0 个答案:

没有答案