tl;dr

Jupyter Notebookは裏で常に動かしておいて,ノートブックを作りたくなったら任意のディレクトリに移動してjdコマンドで開くようにしとくと便利.

Jupyter/ipython notebookの運用について

ぶっちゃけJupyterの使い方が良くわからない.とりあえず自分のやり方を書いてみるので,他に便利な使い方をしている人がいれば是非教えてほしい.

といっても,別にノートブックの使い方がわからないんじゃなくて,日常的に使い倒すにあたってどういう運用をすればよいかがわ分からないのだ.一番分からないのは,Jupyter Notebookをいつ起動するか?という問題.よし解析するかとなった時に必要に応じて起動する人もいれば,裏で常に起動しておいていつでも作業できるようにしておくというのもある.サーバに立てといてリモートで使えるようにしておくとか,あとはローカルに置いてある.ipynbのファイルをダブルクリックで起動できるようにしておくということもできるようだ(参考).他に気になる運用上の問題としては,計算が重すぎてJupyter Notebook上のコマンドがkillできないときはどうするかとか,Google Cloud Datalab便利だよねとか,まあそこら辺は別の話なので今回は触れない.

Jupyter Notebookは基本的にウェブブラウザから操作するものとはいえ,やはり個人的には作業の中心には常にターミナルがあるので.そこからなんとかターミナルをベースにJupyterに適宜移動するということをしたい.毎回Jupyter Notebookを起動して使い終わったら消すのも面倒だし,かといってターミナルで作業しているのにウェブ画面からポチポチディレクトリ構造を追うのも大変だということで,自分はコマンド経由で今いるディレクトリのJupyter Notebookのページを開くエイリアスを作成して使っている.

ターミナルから任意のディレクトリでJupyter Notebookを開けるようにする

コマンドは以下の通り.これを.bashrcなり.zshrcなりに書いておけば使えるようになる.やっていることは至極単純で,Jupyter NotebookのURLに今いるディレクトリをくっつけてopenでブラウザから開くようにしているだけ.上の例ではjdという名前のエイリアスを作成しているけれども,Jupyter-openでもjjでも他のコマンドとバッティングしなければ好きなエイリアスをつければ良い.

# Jupyter
export JUPYTER_URL_PATH="http://localhost:8888/"
alias jd='PWDPATH=`pwd`;open $JUPYTER_URL_PATH"tree${PWDPATH/#$HOME}"'

上の方に実際に使っているgifアニメを貼っているので使い方を書くまでもないけれども,ノートブックを作りたい!というディレクトリに移動してjdと入力するだけ.

# http://localhost:8888/tree/path/to/open/を開く
$ cd path/to/open/
$ jd

まとめ

ということで,Jupyter Notebookをいつ起動しておけばいいか問題について自分のやり方を書き出してみた.Rをメインで使っている人たちはRStudioがあってknitrがあっていいなーと思いつつ,PythonだってJupyterになり他言語を飲み込んでデータ分析の開発環境になりつつあるので,このあたりもっとノウハウが増えればいいなと思う.