読者です 読者をやめる 読者になる 読者になる

DISTRICT 37

なにか

Jupyter Notebookの設定をする

Python

JupyterNotebookの設定をする。導入はこちら

dragstar.hatenablog.com

Jupyter notebookをホストのブラウザで使用する

Ubuntu on Virtualboxで運用しているので、Jupyterとか使用する際にはゲスト側ではなく、ホスト側のブラウザで実行すると捗る。ということでJupyterを起動する際には以下のようにしていた。

  • ポートフォワードの設定

VMの設定→ネットワーク→NATアダプタ→ポートフォワーディング f:id:dragstarclassic:20161219102224j:plain

f:id:dragstarclassic:20161219102234j:plain

ポートフォワードの設定をしておく。これをしておくとホスト側のブラウザなどでポートを指定すると、ゲスト側のポートにフォワードしてくれる。下段がJupyter用で、上段がDjango用に設定している。Djangoについては今回関係ないので割愛。

  • jupyter notebook実行時のコマンド
cd my/favorite/notebook/directory
jupyter notebook --ip=0.0.0.0

ipのオプションを付けることでアクセス制限をかけることが出来る。「0.0.0.0」はアクセス制限なし。これを利用してホスト側のブラウザでJupyterを使う。以上でホスト側のブラウザでhttp://localhost:8888を打つとゲストで起動しているJupyterを使うことが出来る。

jupyter_notebook_config

ということで、jupyter notebookを使うときはいつも同じディレクトリで動かしているし、ipの指定もしている。ついでに件のコマンドを打つとゲスト側でブラウザが立ち上がってくる。使わないのに。ということでこれを制御する方法。

まずはコンフィグファイルの生成

jupyter notebook --generate-config

~/.jupyter/jupyter_notebook_config.pyが生成される。このファイルを編集して設定する。

  • ip指定

コンフィグファイルから「c.NotebookApp.ip」という文字列を探す。jupyterに設定できる項目はコメントアウトされているので、これを有効にするだけでいいようになっている。それでip指定は以下のように変更

c.NotebookApp.ip = '*'


同様に「c.NotebookApp.notebook_dir」という文字列を探す。これを指定することでいつも同じディレクトリで動かせる。

c.NotebookApp.notebook_dir = 'your/favorite/notebook/directory'


「c.NotebookApp.open_browser」という文字列を探して設定。jupyter起動後にブラウザは自動起動しなくなる。

c.NotebookApp.open_browser = False


他のコメントアウトされている項目を見るとそれなりに想像がつきそうだが、自分の場合はこんな感じで十分かと。他の設定項目に関して知りたいのであれば公式ドキュメントを見てもらうといい。

Configuration Overview — Jupyter Notebook 5.0.0.dev documentation

これで以下のようにシンプルにコマンドを打てば設定どおりにjupyterが使える。

jupyter notebook

実はこの設定ファイル云々は本来ならばサーバ用の設定となる。運用しているサーバでjupyterを起動し、その際の挙動を設定ファイルで制御するという形だ。なので設定次第で、スマホでjupyterなんてこともできるようになる。