IPython Notebookのノートをgitなどで版管理する


このエントリーをはてなブックマークに追加

IPython Notebookのノートは、拡張子が.ipynbであるファイルとして保存されます。この.ipynbファイルを覗いてみると、以下のようにpngがファイル内に埋め込まれていることがわかります。

     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAEA ...(以下略)

そのため、.ipynbファイルをgitなどで版管理すると、無駄に容量が増えてしまいます。できれば.ipynbファイルから実行結果部分を削除したいところです。

その議論がUsing IPython notebooks under version control - Stack Overflowでなされています。方法は大きく分けて以下の2つです。

手動で削除

IPython NotebookのCell -> All Output -> Clearを実行すると、実行結果部分をすべて削除することができます。

自動で削除

先ほどのページで紹介されているnbstripout.pyを使うと、実行結果部分をすべて削除することができるようです。ただし上で紹介した「手動で削除」と同じ結果にはならないとのこと。私は試してません。

gitのhookの仕組みを使えば、コミットする前に自動でこのスクリプトを走らせることができそうです。