EIN(Emacs IPython Notebook)を試してみる

2つrepositoryがあり後者の方がmelpaで入るもの。どうやら後者は前者のforkらしい。

install

package-installで入れる。

M-x package-install ein

注意点としてemacsのversionを上げないとうまくいかない模様。25に上げる必要があった。結構アグレッシブ。

how to use

使い方は以下を何処かに記述してから。

(require 'ein)
  1. jupyter-notebookを立ち上げる
  2. einからjupyterのserverにログイン
  3. notebookの一覧表示
  4. notebookを開く

jupyter-notebookを立ち上げる。

 $ jupyter-notebook
[I 21:40:56.465 NotebookApp] Serving notebooks from local directory: ~/venvs/my3/nbreversible/examples/00ipython
[I 21:40:56.465 NotebookApp] 0 active kernels
[I 21:40:56.465 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/?token=4bf5221877274cbb6d1efd9971e6b5999643d9c19f09449e
[I 21:40:56.465 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 21:40:56.467 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=4bf5221877274cbb6d1efd9971e6b5999643d9c19f09449e

ここでtokenの4bf5221877274cbb6d1efd9971e6b5999643d9c19f09449eをコピーしておく。

その後emacs上で M-x ein:notebooklist-login を実行しパスワードの箇所でコピーしておいたトークンを入力する。

ログインが成功したら M-x ein:notebooklist-open で一覧画面を開く。

Jupyter v5 Notebook list

 | [Home] |

[New Notebook] [Reload List] [Open In Browser]

Create New Notebooks Using Kernel: 
( ) Python 3

 [Open] [Stop] [Delete] : 00pretty.ipynb
 [Open] [Delete] : 00pretty.md
 [Open] [Delete] : 00pretty.py
 [Open] [Delete] : Makefile
 [Open] [Delete] : requirements.txt

---------- All Opened Notebooks ----------

[Open][Close] : *ein: http://127.0.0.1:8888/00pretty.ipynb*

雰囲気で使い方はわかると思う。OpenのところでEnterを押すとnotebookが開く。

with notebook

notebookを開いたら通常のnotebookとおおよそ同様の画面に辿り着く。こういうような。

In [1]

ここで最低限覚えて置かなければいけないのは以下の4(3)つ。

key 説明
C-c C-c 現在のcellを評価する
C-c C-a 現在のcellの上に新しいcellを作る
C-c C-b 現在のcellの下に新しいcellを作る
C-c C-k 現在のcellを削除する

詳しいkey-bindingはこのあたりに

変更の保存はもちろん C-x C-s

tab (worksheet)

ちょっとした作業にworksheetを行き来するのが楽なので便利。これは以下の様にして使う。

key 説明
C-c + 新しいworksheetの作成
C-c 1 worksheet1に移動
C-c 2 worksheet2に移動
C-c 3 worksheet3に移動
.. ..
C-c worksheetに移動
C-c - worksheetの削除