忘れないようにメモっとく

機械学習とかプログラミングとか。

ipython notebookをリモートサーバ上で動かす。

ipython notebookすごく便利。
The IPython Notebook — IPython 2.0.0-dev: Work in Progress documentation

開発が盛んで、バージョンが更新されるたびに、UIもどんどんよくなる。
ガンガン補完してくれるし、コマンドライン上のipythonでは出来ないような、グラフの描画や数式の表示がgoodだと思う。


f:id:Akiniwa:20131125000828p:plain

リモートサーバ上で、pythonを使う場合でも簡単に設定ができるので、メモしといた。

参考にした記事
Setup a remote IPython notebook server with Numpy/Scipy/Maltplotlib/Pandas in a virtualenv on Ubuntu Server - Thomas Sileo

まずは、ipythonを起動して、ipython notebookにログインするときのパスワードを設定する。

In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password:
Verify password:

ハッシュ化されたパスワードが表示されるのでコピーしておく。

そのあと、ipython notebookの設定ファイルを作成する。myserverの部分はhogeでもfooでもなんでもいい。設定ファイルのipython_notebook_config.pyを編集する。

ipython profile create myserver
vim ~/.ipython/profile_myserver/ipython_notebook_config.py


c = get_config()のすぐ下に追加する。

c = get_config()

# ここを追加
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:yourhashedpassword'
c.NotebookApp.port = 9999


これでもう完了。以下のコマンドを打って、

ipython notebook --profile=myserver

サーバのアドレスが、sample.comなら、
http://sample.com:9999
とブラウザに入力すればおk。

ちなみに、ipython notebookを常にサーバ上で使いたいときは

nohup ipython notebook --profile=myserver &

とすればよい。

サーバの接続切れてもコマンドを実行する ~ nohup - 忘れないようにメモっとく