ちょっと前にバツイチちゃんが、anacondaでipythonを入れてって書いてましたが、ローカルなマシンならいいとしてサーバーに入れる場合個別にpipで入れたかったりしますよね
そこでpipでipythonを入れて、プロセスをsupervisorで管理する方法を紹介します。
ipythonをインストール
ipython notebookのインストール方法は簡単です。
pip install ipython
もしくは
pip install "ipython[notebook]"
です。
インストール直後は設定ファイルがないので、設定ファイルを作ります。
ipython profile create
「.ipython/profile_default/」この中に設定ファイルが作られます。
ipython notebookの設定ファイルは「ipython_notebook_config.py」なので、これを変更します。
主に変更しそうな項目は以下な感じ。
#listenするIP c.NotebookApp.ip = '0.0.0.0' #起動時にブラウザを立ち上げるかどうか c.NotebookApp.open_browser = False #ポート番号 c.NotebookApp.port = 8888 #ipython notebookで使うディレクトリ c.NotebookApp.notebook_dir = u'/home/ipython' #ブラウザのパスワード c.NotebookApp.password = u'sha1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
これで、コマンドラインから
ipython notebook --matplotlib inline
こんな感じで叩くと、ipython notebook が起動して、ブラウザからアクセスできるようになります。
supervisordでプロセス管理
毎回コマンド叩くのめんどいですし、supervisorでデーモン化しちゃいましょう。
yum install supervisor
サクッとyumでインスコして、設定ファイルにipython用の設定を追加しましょう
$ vi /etc/supervisord.conf [program:ipynb] command=/home/ipynb/.virtualenvs/py2.7/bin/python2.7 /home/ipynb/.virtualenvs/py2.7/bin/ipython notebook --matplotlib inline numprocs=1 stdout_logfile=/var/log/supervisor/ipy.log autostart=true autorestart=true user=ipynb redirect_stderr=true
もちろん設定は、他ファイルに書いてincludeしてもいいと思います。
設定ファイルを変更したら、起動して完了です。
/etc/init.d/supervisord start
ipython notebookがsupervisor経由で起動してるかどうかは以下のコマンドで確認できます。
supervisorctl status ipynb RUNNING pid 6687, uptime 0:09:51