extensionを追加してもっと快適なJupyter環境を構築する

More than 3 years have passed since last update.

Jupyterはすごい便利なんですが、この機能があったらなーと思うことがあります。

そんなときにはextensionです。

JupyterにはNotebook extensionsとかいうのがあって、機能の拡張ができるようになっています。

公式サイトにもextensionsがあるということはちょこっと載ってるんですが、いくつか使用してみると結構便利。

Jupyterは使っているけどextensionは使っていないというひとに是非試して欲しいです。


Jupyter notebook extensions

Jupyterに機能を追加するextensionを集めたレポジトリがGitHub上に公開されています。

https://github.com/ipython-contrib/IPython-notebook-extensions

このレポジトリを利用すると、ブラウザからextensionのactivate/deactivateの切り替えが可能で便利です。

IPythonの公式デベロッパーチームとは関係ないグループで開発されているようです。


インストール

pip install pyyaml

git clone https://github.com/ipython-contrib/IPython-notebook-extensions
cd IPython-notebook-extensions
sudo python setup.py install


コンフィグレーション画面

インストールが完了したらコンフィグレーション画面を開き、気に入ったextensionを有効にしましょう。

コンフィグレーション画面はJupyter notebookを実行してブラウザからlocalhost:8888/nbextensions/にアクセスすると開くことが出来ます。

nbextensions.png


jupyter-vim-binding extension

普段vimを使っている人にとってvimのキーバインドが使えないとストレスを感じます。

そういう人のためにjupyter-vim-bindingというextensionがあります。

さきほどのレポジトリには入っていませんが、以下のレポジトリから単独で入れることが出来ます。デモ画像もGitHubの方にあります。

https://github.com/lambdalisue/jupyter-vim-binding

直接インストールする方法とさきほどのIPython-notebook-extensionsに組み込んでインストールする方法があります。

今回は後者でインストールします。

cd $(jupyter --data-dir)/nbextensions/usability

git clone https://github.com/lambdalisue/jupyter-vim-binding.git vim_binding
chmod -R go-w vim_binding

インストールしたらlocalhost:8888/nbextensions/から有効にしましょう。

もともとのキーボードショートカットで使用できなくものもあるので注意してください。


お気に入りのextension


NbExtensions menu item

Editメニューにlocalhost:8888/nbextensions/を開くボタンを追加します。

とりあえずこれを有効にしましょう。


Code Font Size

コードのフォントサイズを大きく/小さくすることができるボタンをツールバーに追加します。


Codefolding

セル内のコードを折りたたむことが出来ます。


Comment/Uncomment Hotkey

コメント/アンコメントを行うショートカットを追加します。


Drag and Drop

画像をドラッグ・アンド・ドロップすると画像をノートに挿入します。

画像はノートブックと同じ階層のディレクトリにコピーされ、それを参照する形での挿入となります。

youtubeにデモ動画があります。

http://youtu.be/buAL1bTZ73c


Equation Auto Numbering

数式に式番号を入れます。式番号の表示/非表示ボタンも追加されます。


Table of Content

こんな感じでコンテンツテーブルが表示されます。

Kobito.By9WPC.png


zenmode

メニューバーとかが邪魔なときに使います。