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

サイエンティストとマーケターのはざま

Pythonとか広告とかデータ分析とかとか


IPython notebookをインストールする

Python IPython Notebook サーバ

f:id:ukichang:20141108142134p:plain

ブラウザでIPython Notebookを起動してみましょう。

IPython Notebook を実行するにはIPython とその依存する ソフトウェアをインストールする必要があります。 

インスタンスのAMIによってインストール方法が異なるかと思いますが、ここではubuntu(Linux)での設定方法をまとめていきたいと思います。

まずはインスタンスに接続します。接続方法は前回の記事をご覧ください。

接続が完了したらソフトウェアをインストールします。

LinuxにはすでにPythonがインストールされています。そのため、以下のコマンドを実行するだけでインストール可能です。

$ sudo apt-get install python-matplotlib

$ sudo apt-get install python-tornado

$ sudo apt-get install ipython

$ sudo apt-get install ipython-notebook

インストールが完了したら次にIPython Notebook を構成します。最初の手順ではカスタムの IPython 構成プロファイルを作成して、構成情報をカプセル化します。

$ ipython profile create myserver

次に、プロファイル ディレクトリに移動して (cd コマンドの使用)、SSL 証明書を作成し、プロファイルの構成ファイルを編集します。

$ cd ~/.ipython/profile_myserver/

 SSL 証明書を作成します。

$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

パスワードを暗号化 します。

python -c "import IPython;print IPython.lib.passwd()"

このコマンドではパスワードが求められるので任意のパスワードを入力し、確認のために再度入力します。このパスワードはIPython Notebookログイン時に必要となりますので忘れないようメモしておきましょう。

パスワードを入力すると"sha1: ..."と書かれたハッシュ化されたパスワードが表示されます。プロファイルの構成ファイルの編集時に必要となりますのでコピーしておいてください。

Enter password: 

Verify password: 

sha1:b86e933199ad:a02e9592e59723da722.. (elided the rest for security)

設定ファイルを編集します。

$ sudo vim ~/.ipython/profile_myserver/ipython_notebook_config.py

":i"でファイルの編集が可能になります。c = get_config()の下を以下のように編集してください。portはインスタンス作成時にあけたport番号を、passwordは先ほど作成されたものを入力してください。編集が完了したら":wq!"で保存して閉じることができます。

c = get_config()

 

# ここを追加

c.IPKernelApp.pylab = 'inline'

c.NotebookApp.ip = '*'

c.NotebookApp.open_browser = False

c.NotebookApp.password = u'sha1:yourhashedpassword'

c.NotebookApp.port = 8888

c.NotebookApp.open_browser = False

IPython Notebook を開始する準備ができました。IPython Notebook を実行するにはnotebookを保存するディレクトリに移動して、 IPython Notebook サーバーを起動します。

$ ipython notebook --profile=myserver

ブラウザでec2のインスタンスのアドレス https://ec2-**-**-**-***.ap-northeast-1.compute.amazonaws.com:8888をたたいてみましょう。以下のような画面が表示され、passwordを求められます。設定したpasswordを入力してログインしてみてください。

f:id:ukichang:20141108184227j:plain

 なお、このままではインスタンスの接続を切断するとブラウザのnotebookもダウンしてしまいます。インスタンスの接続を切断してもIPython Notebookを起動したままにしておくには、IPython Notebook サーバーを起動時のコマンドを以下にしておいてください。

$ sudo nohup ipython notebook --profile=myserver &

あと、インスタンスの再起動時に自動的にnotebookを立ち上げるようにすればどうすればいいんだろうか・・・。

まれに負荷のかかる計算をした際にサーバが落ちるので自動でnotebookを復旧したいところですが、今後の課題としておきます。

 

参考URL

ipython notebookをリモートサーバ上で動かす。 - 忘れないようにメモっとく

Azure での IPython Notebook

Setup a remote IPython notebook server with Numpy/Scipy/Maltplotlib/Pandas in a virtualenv on Ubuntu Server - Thomas Sileo