Atom内でjupyter notebookを使うパッケージ「hydrogen」

先日、ディープラーニングの勉強会に参加したのですが、そこでjupyter notebookを使い機会がありまして、おお、こんなに便利なものがあるのかと衝撃を受けたのですが、少し問題点もいくつかありました。

実際僕はjupyter notebookをあまり使っていなく、機能を熟知していないので気になる方はググってもらえると良いのですが、簡単に言えばpythonのコードを部分的に実行できるブラウザ上で操作するツールです。

この「部分的にコードを実行できる」というのが便利だなと思ったのですが、僕はatom上にパッケージをバリバリ入れて補完とかキーバインドとか効率的に作業できるように組み込んでいるのでブラウザ上だとそれが使えなくて不便に感じました。

最初はjupyter notebook上でvimのキーバインドで使えるようにする方法はないかなと探していたのですが、
あれ、atom上でjupyter notebook使えたら便利じゃね?
と逆に考えて調べてみると、同じことを考えている人はいたようでパッケージを作ってくださっていました。

それが「Hydrogen

上のサイトに書かれてある「Hydrogen」の名前の由来もなんか素敵ですね。

Why “Hydrogen”?

Hydrogen atoms make up 90% of Jupiter by volume.

Plus, it was easy to make a logo.

 

デフォルトのキーバインドが微妙だったので若干変更しました。
要は、「run all above」にショートカットキーが割り当てられていなかったので、使いそうにない「run」のショートカットキーを移しました。

keymap.csonに以下を追加

これによってよく使うショートカットキーは
Run and Move Down:Shift-Enter ←jupyter notebookと同じ
Run All:Ctrl-Cmd-Enter
Run All Above:Cmd-Enter
としました。

また、jupyter notebook上ではmatplotlibを出力するときには
% matplotlib inlineなどと言っておかないとダメですが、Hydrogenではそういう宣言なしに、以下の画像のようにエディタ上に出力できます。

この画像多分1行目が見切れてて
import matplotlib.pyplot as pltがはみ出てますね。

また!cat ファイル名.txtように感嘆符の後にシェルコマンドを続けて書くとそれもエディタ上で実行できます。
コレも便利ですね。

すごく便利なので、atom上でPythonとかRとか使う方は是非使ってみて下さい。

【追記】
少し期間が開いて、再びRun and Move Downを使ってみるとこんなエラーが出ました。
Uncaught TypeError: editor.languageMode.rowRangeForCodeFoldAtBufferRow is not a function

少し調べてみました。
すると最近あったatomの1.22へのバージョンアップが原因のようです。
しかし、hydrogenの開発者様がすぐさま対応してくださたようで、hyrdrogenのバージョンアップをすると良いみたいです。
【参考】https://github.com/nteract/hydrogen/pull/1036

アップデート後、atomを再起動して使ってみようとするとちょっとしたメッセージが出るので、それに従って
$ python -m pip install ipykernel
$ python -m ipykernel install --user
この2つを実行し、再び再起動すると、無事使えるようになっていました。
ご参考までに。

コメントを残す