さやノート

Kaggler grandmasterを目指して

Jupyter Notebook Extensionを自作してみる その1

最近JupyterNotebookExtensionをオリジナルで作る方法に興味があったが、 なかなか日本語での説明がみあたらないので、備忘録も兼ねてまとめていくことにする。

まずは、どこか適当な場所に、Extension開発用のディレクトリを作る。 ここでは、~/jnbextension/ってことにする。

次に、その中にmy_first_moduleディレクトリを作る。

とりあえず、チュートリアルどおりに適当にコードを書いてみる。 Lyntなんて知らん。

// ~/jnbextension/my_first_module/main.js

define(function(){
  function load_ipython_extension(){
    console.info('This is my first extension')
  }

  return {
    load_ipython_extension: load_ipython_extension
  }
})

できたら、それをインストール・有効化する。

jupyter nbextension ~/jnbextension/my_first_module --user# main.jsがあるディレクトリを指定する
jupyter nbextension my_first_module/main

そしたら、次はJupyterNotebookを起動して、Nbextensionのタブを見てみる。 f:id:sayanotsu:20200412161702p:plain

そうすると、さっき作ったモジュールの名前があるはずなので、それにチェックを入れる。

さて、動作チェックは、1つのNotebookを起動して、「開発者ツール」の「コンソール」で確かめてみる。

f:id:sayanotsu:20200412162332p:plain

すると途中で「This is my first extension」って出力されてるので、とりあえずロードされてるっぽい。 なんかエラってるっぽいが気にしたら負けだ。

【参考】

jupyter-notebook.readthedocs.io