Emacs ob-ipython.el : Org mode の Python コードブロックを IPython のカーネルで評価する

Org mode の Python コードブロックを IPython のカーネルで評価するパッケージ ob-ipython を紹介します。

はじめに

Org mode は説明不要、というか説明しきれないくらい多機能で有名な Emacs の アウトラインツールです。
Org mode では org-babel という機能で、org ファイル内に書いた別の言語のコードブロックを評価できてしまいます。
ob-ipython ではデフォルトの ob-python より図の挿入が簡単になったり、IPython 形式のトレースバックが見れるようになるので、Python の実行環境がより快適になります。

設定

インストール

Melpa からパッケージをインストールできます。

M-x package-refresh-contents
M-x package-install ob-ipython

init.el の設定

最低限以下の設定をしておくと良いと思います。C-c C-v C-m でコードを実行します。

(require 'ob-ipython)
;; コードを評価するとき尋ねない
(setq org-confirm-babel-evaluate nil)
;; ソースコードを書き出すコマンド
(defun org-babel-tangle-and-execute ()
  (interactive)
  (org-babel-tangle)
  (org-babel-execute-buffer)
  (org-display-inline-images))
(define-key org-mode-map (kbd "C-c C-v C-m") 'org-babel-tangle-and-execute)

github にドキュメントと例があるので詳細はそちらを見てもらうとして、自分でも例を実行してみました。

org ファイルはこんな感じ。

150615screenshot_resize.png

Figure 1: スクリーンショット

実行結果をブログ記事にすると以下のようになります。

def foo(x):
    return x + 9

[foo(x) + 7 for x in range(7)]
[16, 17, 18, 19, 20, 21, 22]
import matplotlib.pyplot as plt
import numpy as np
plt.hist(np.random.randn(20000), bins=200)

15061501.png

Table 1: Sample
a 1 2
b 2 3
c 3 4
(x, data)
(2, [['a', 1, 2], ['b', 2, 3], ['c', 3, 4]])

おわりに

ob-ipython を紹介しました。
最近 Melpa に登録されたばかりのパッケージで、これからの開発が非常に楽しみです。
ob-python では図を挿入するために plt.save メソッド で図を保存する必要があったりしたのですが、ob-ipython ではより簡単に図が挿入できるようになって便利です。
今では elpy.el などのよくできたパッケージもあるおかけで、Emacs も Python の実行環境として十分実用的になっていると思います。

コメント

Comments powered by Disqus
書籍更新情報
2017-01-16
Pythonによる科学技術計算 基礎編
1.3版への更新が可能になりました。
サポートページはこちら
電子書籍
Pythonによる科学技術計算 基礎編
Kindle ストアで販売中です
Pythonによる科学技術計算 基礎編
同人誌
技術書典(2016/6/25)
Emacs/org-modeのPDF作成術
電子版をBOOTHで販売中です
Emacs/org-modeのPDF作成術
Share