IPython notebookのリモート接続に関する件について
はじめに
IPython notebookは便利っぽい。
なので、CentOSサーバにいれて、みんなでつつけるように出来たらもっと便利だろうと。
デフォルトだとリモート接続できるように設定せにゃあかんいうことで、その設定について備忘録を簡単に残す。
目標
簡単にするため、ログインパスワードを知っている人間がつつければOKってコトにする。
細かい設定を行いたい場合は、以下を参照。
http://jupyter-notebook.readthedocs.org/en/latest/public_server.html
導入前提
- CentOS7
- Python3.4
- pip3で以下が導入済みであること
- numpy
- scipy
- pandas
- matplotlib
- scikit-learn
- IPython notebook
導入
設定
IPythonを起動して、IPython notebookにログインするときのパスワードを設定する。
ハッシュ化されたパスワードが表示されるのでコピーしておく。
# ipython
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:【ログインパスワード】
Verify password:【ログインパスワード】
Out[2]: 'sha1:【ハッシュ化されたログインパスワード】'
IPythonを終了して、jupyter_notebook_config.py
を編集する。
# vi ~/.jupyter/jupyter_notebook_config.py
jupyter_notebook_config.py
の内容は以下の通り。
c = get_config()
# matplotlibで描画したものがnotebook上で表示できるようにする
c.IPKernelApp.pylab = 'inline'
# 全てのIPから接続を許可
c.NotebookApp.ip = '*'
# IPython notebookのログインパスワード
c.NotebookApp.password = 'sha1:【ハッシュ化されたログインパスワード】'
# 起動時にブラウザを起動させるかの設定(デフォルトは起動させる)
c.NotebookApp.open_browser = False
# ポート指定(デフォルトは8888)
c.NotebookApp.port = 【接続ポート】
接続検証
IPython notebookを起動させる。
# ipython notebook
そして、外部の端末のブラウザよりhttp://【リモートサーバ】:【接続ポート】/tree
で接続する。
するとパスワードを聞かれるので、【ログインパスワード】を入力して、ログインする。
これで、リモートからIPython notebookを使うことが出来るようになる。
new
-> Notebooks Python 3
をクリックし、新規ノートブックを開き、以下の通りに入力を進める。
In [1]: pylab inline --no-import-all
Populating the interactive namespace from numpy and matplotlib
In [2]: x = np.arange(-10, 10, 0.1)
In [3]: y = np.sin(x)
In [4]: plt.plot(x, y)
Out[4]: [<matplotlib.lines.Line2D at 0x7fef3e2e2d68>]
入力したら、以下の画像のようなsin(x)の絵が出力されることを確認する。
コンソールより、Ctrl-C
でサーバをシャットダウンする。
これでたぶん一通りの基本的なものは使えるようになるだろう。