Jupyter notebook に Node.js カーネルを追加

[状況] Cent OS サーバ, python3 環境下でインストールした Jupyter に、Node.js カーネルとして jupyter-nodejs を追加したい。python2 仮想環境は Anaconda で(py27の名前で)すでにインストールしてある。

1. jupyter-nodejs をインストール

node はインストール済みと仮定。

python2 環境でないと(python2コマンドが無いと?)ダメそうなので、$ source activate py27 で python2 環境に入る。

$ node installzeromq インストールで引っかかった。

まずは g++ 用の zeromq をインストール。リンク先の POSIX tarball をダウンロード、説明通りにインストール。サーバで自前のディレクトリに入れた場合は CPLUS_INCLUDE_PATH/opt/include を追加すること等を忘れない。

これで $ npm install zmq; npm install zeromq が通るようになるはず。そのままインストールの続きを実行。

2. Jupyter notebook 側の設定

jupyter-nodejs インストール後、python 3 環境に戻って Jupyter notebook を開き NodeJS カーネルを新規作成すると、dead kernel となってしまった。

python2 環境に入ってから再度同様にすると、カーネルは動くが、リモート実行していた(ブラウザをサーバ側で開かずに、ローカルにポートフォワーディングしていた)のが、ブラウザが開くように(設定が無効に)なってしまっていた。

Jupyter のコンフィグファイル ~/.jupyter/jupyter_notebook_config.py を一時退避し、python2 環境下で再度

$ jupyter notebook --generate-config

を実行した後に、退避していたコンフィグファイルを元に(作成したものに上書きして)戻したところ、python2 環境を抜けても元通りの動作をするようになった。

もっとスマートな方法はありそう。