いろいろな更新が滞っているブログですが、気が向いたときに追加していくということでご容赦ください(笑)。
前職の研究開発(自然言語処理)をしているときから、会社のクラウド環境とは別に、いろんな開発検証用の環境をAWS(Amazon Web Service)上に作っています。
先日、Node.js(JavaScriptのサーバサイド実行環境)を入れていたのですが、Anacondaを使って入れていると、IPython Notebook(Pythonのブラウザベース開発環境)が入っていて、よくよく調べてみると、そのProjectは今はJupyter Notebookとなっていて、いろんな言語の開発環境がブラウザベースで作れる+しかも、AWSに適用しているLinuxのファイルベースで管理ができるという、すごいことになっていました。そこでNode.jsとRも使えるようにしてみましたので、その方法をまとめてみます。
AWS上のLinuxはCentOS6.5です。
もともとがIPython Notebookなので、Anaconda上でIPython Notebookを適用してから、ターミナル上で
1 |
$ ipython notebook |
もしくは
1 |
$ jupyter notebook |
で実行できると思います。デフォルトでは、http://localhost:8888上で実行できるのみですが、AWSのようなクラウド環境で適用させたい場合は、リモートで使える設定をする必要があります。
まずは、ログインパスワードの設定、ipythonを起動し、
1 2 |
from notebook.auth import passwd passwd() |
を打つと、パスワードが求められるので、設定したいパスワードを打つと鍵が発行されるので、それをメモ。次に設定ファイル、~/.jupyter/jupyter_notebook_config.pyの中の
1 2 3 4 5 6 7 8 |
#接続元IPを制限なしに c.NotebookApp.ip = '*' c.NotebookApp.password = u'sha1:bcd259ccf...<先ほどの鍵をコピペ>' #ブラウザは立ち上げない c.NotebookApp.open_browser = False # 特定のポートに指定(デフォルトは8888) c.NotebookApp.port = 9999 |
等々設定してもらえれば、リモートでも使えるようになると思います。もちろん、AWSのようなクラウドサービスの場合は、セキュリティグループ設定でポート番号も開放する必要がありますが。
接続すると
ログイン画面が現れるので、先ほど設定したパスワードを打てば
という形で入れると思います。ここの起動位置は、jupyter notebookをコマンド起動したファイル位置になります。
デフォルトでpythonは作成できるようになっています。Newからpythonを選んでもらうと
のような実行画面が出てきます。プログラムを書き(画面上は一行ですが、複数行書くことも可能)、Shift+Enterで即時実行されます。賢いのは、tabキーでコードアシストされたり、実行履歴自体もipynbというJSON形式のファイルになっていて、それをpy形式だけではなく、HtmlやPDFなどの出力も可能ということ。これは素晴らしい!
Node.jsとRの導入に関してを、最後に触れておきます。
Node.jsの導入方法は、下記を参考に
GitHub – notablemind/jupyter-nodejs: A node.js kernel for jupyter/ipython
ほぼ、そのままで、GitHubからjupyter-nodejs-1.1.0.tgzをダウンロードしたうえで、
1 2 3 |
$ tar xf jupyter-nodejs-1.1.0.tgz $ cd package $ npm install && node install.js |
で、実行可能になります。
一方のRのほうですが、こちらのほうはGitHubに上がっているIRkernelを使う方法は
GitHub – IRkernel/IRkernel: R kernel for Jupyter
なぜか僕の環境ではうまくいかなかった(パッケージの適用ができない)ので、下記の方法を参考にしました。
Jupyter and conda for R | Continuum
AnacondaでRとR-enssentialを入れるだけです。
1 |
$ conda install -c r r-essentials |
これでjupyter notebookを立ち上げるだけで、Rを使えるようになっていました。
ブラウザがあれば、どこでも開発できる夢の様な環境です。これで、いろいろ作っていきたいと思います。
Yusuke Yamashita liked this on Facebook.