リモートサーバでJupyter Notebookを使う

私は .py ファイルを動かす派ですが,実行結果の見やすさや操作性の高さから Jupyter Notebook 派が増えているようです.使うことができれば便利かもしれないのでインストールしておこうと思います.

Jupyter Notebook インストール

terminal

$ pip install jupyter

ipython でパスワード生成

terminal

$ ipython

In [1]: from notebook.auth import passwd

In [2]: passwd()
Enter password: <enter password>
Verify password: <re-enter password>
Out[2]: 'sha1: <hashed password>'

# 出力されたパスワード sha1: <hashed password>をコピー

In [3]: exit()

設定ファイルの作成

まず,設定ファイルを保存するディレクトリを作っておきます.

terminal

$ mkdir ~/.jupyter

設定ファイルは手元のパソコンで作成して SCP で送信するか,サーバ上のテキストエディタで作成します.

ファイル名は jupyter_notebook_config.py です.

jupyter_notebook_config.py

c = get_config()

# Notebook上でplotを表示できるようにする
c.IPKernelApp.pylab = 'inline'
# 全てのIPから接続を許可
c.NotebookApp.ip = '*'
# IPython notebookのログインパスワード
c.NotebookApp.password = 'sha1: <ハッシュ化されたパスワード>'
# 起動時にブラウザを起動させるかの設定
c.NotebookApp.open_browser = False
# ポート指定
c.NotebookApp.port = <port>

SCP で送信する場合は SSH 接続していないターミナルで実行します.ローカルディレクトリには設定ファイルを保存しているディレクトリの PC 上のパスを入れます.

terminal

$ scp <local directory> <username>@<IP address or domain>:~/.jupyter

Jupyter Notebook の利用

terminal

$ jupyter notebook
[I 17:32:27.004 NotebookApp] The Jupyter Notebook is running at:
[I 17:32:27.004 NotebookApp] http://<pc name or domain>:<port>/

DNS でサーバにドメインを振っていれば,表示されるアドレスで接続できます.振っていない場合は IP アドレスを使って接続することができます.

ブラウザでドメインもしくは IP アドレスとポート番号を入力すると,ログイン画面になります.ここで,ipython で入力したパスワードを入れると Jupyter Notebook が使えるようになります.

参考

リモートサーバで jupyter notebook を起動させローカル環境で使う | Qiita