プロジェクトでは、IPyWidgets を使用して Google Cloud Datalab を拡張しようとしています。ローカルで jupyter ノートブック (google-cloud-datalab ではなく) で IPyWidgets を試すと、すべてが期待どおりに実行されます (つまり、テキスト フィールドを表示しようとしましたが、うまくいきました)。Google Cloud Datalab で同じコードを実行しようとすると失敗します。Web コンソールに次のエラーが表示されます。
エラー 1:
Error message: "Class ipython.widget not found in registry "
Error stack: "load_class/<@http://localhost:8081/static/notebook/js/main.min.js:12751:28load_class@http://localhost:8081/static/notebook/js/main.min.js:12736:1CommManager.prototype.comm_open@http://localhost:8081/static/notebook/js/main.min.js:21802:31.proxy/i@http://localhost:8081/static/notebook/js/main.min.js:89:5486Kernel.prototype._handle_iopub_message@http://localhost:8081/static/notebook/js/main.min.js:23101:20Kernel.prototype._finish_ws_message@http://localhost:8081/static/notebook/js/main.min.js:22936:1Kernel.prototype._handle_ws_message/this._msg_queue<@http://localhost:8081/static/notebook/js/main.min.js:22926:39"
エラー 2:
Message: Could not open comm
Error message: "Couldn't process kernel message"
Error stack: "WrappedError@http://localhost:8081/static/notebook/js/main.min.js:12706:19reject/<@http://localhost:8081/static/notebook/js/main.min.js:12785:33"
奇妙なことに、google-cloud-datalab が実行されているときに、jupyter ノートブック (ポート 9000) に移動し、そこでコードを実行すると、動作します。
これを機能させるには、nb.html や static.ts を変更する必要がありますか?
質問: Google Cloud Datalab で IPyWidgets を実行する方法はありますか?
こんにちは、ブレヒト
編集: google-cloud-datalab の IPyWidgets から js ファイルと css ファイルをロードできるようになりました (気になる方は、static.ts を変更する必要があります)。(願わくば) 残っている唯一の問題は、次のエラーが発生することです。
"Error: Could not determine where the display message was from. Widget will not be displayed".
それの訳は
var cell = this.get_msg_cell(msg.parent_header.msg_id);
null です (ipywidgets/widgets/js/manager.js の 556 行目)。static.ts を変更するだけでは不十分だと思いますか?