ipythonはpythonのオリジナルのpythonインタプリタよりもハイライトや履歴管理など便利な機能を兼ね備えたツールである。さらにipython notebookはブラウザ上からスクリプトを実行でき、pythonのパッケージや、コードを学習、演習する上でとても便利なツールである。今回はこれをubuntu12.04に入れてみる。
インストール
$ sudo apt-get install ipython
このままだと、ipythonのバージョンが古いため、pipで内容をアップグレードする。
$ sudo pip install —upgrade ipython[all]
$ sudo pip install jinja2
$ sudo pip install pyzmq
$ sudo pip install —upgrade tornado
後は、コマンドラインから実行すれば良い。
$ ipython notebook
外部からアクセス可能にする。
このままだと、自分で検証する専用になるが、外部で公開したい場合は、ホームディレクトリ中にある.ipythonの設定をいじることになる。
まず、
$ ipython profile create nbserver
と実行して、.ipythonの下に、profile_nbserverというディレクトリを作成する。
後は、その中のipython_notebook_config.pyを編集する。編集すべき項目は以下の通り。
# Kernel config
c.IPKernelApp.pylab = 'inline' # if you want plotting support always
# Notebook config
c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:bcd259ccf...your hashed password here'
# It's a good idea to put it on a known, fixed port
c.NotebookApp.port = 9999
NotebookApp.passwordの部分は、ipythonで生成すると良い。
$ ipython
…
In [1]: from IPython.lib import passwd
passwd()
実行すると、パスワードを入力するように求められ、最終的に”sha1:…”が出力される。それを上記のc.Notebook.passwordに入力として与えると良い。セキュリティとしては、弱いがcertfileをコメントアウトすると、文字列認証でロックされたprofile設定が出来上がる。
後は、ipython実行時にprofileを指定すれば良い。
$ ipython notebook —profile=nbserver