Jupyter Notebook(.ipynb形式)はインタラクティブな実行環境を提供する一方で、ブロックごとの出力や実行番号が必ずしもステートレスとはならず、gitで管理する時の壁となっています。具体的には、ipynb形式は出力や実行番号も内部に保存するので、管理の本質ではないdiffが多くなりコミットログを追うことが難しくなります。 本記事ではこれらに依存せずJupyter Notebookファイルをgit管理する方法をいくつか紹介します。 ただgit管理するだけではなく、以下の要求に着目しながら各方法を比較していきます。 手軽さ: 存在を意識せずに開発できるか。git管理することで余計な手作業は増やしたくありません。 環境依存性: pythonの場合、pyenvやpyenv-virtualenvなどといったpythonのバージョンやインストールしたpipモジュール群を切り替えるツール
はじめに Jupyter Notebook(ipynb)をなるべくマシなバージョン管理方法がないか調べてみました。 実現したいことを簡単にならべると次の通り。 jupyter notebook(ipynb)をgitでバージョン管理したい。 実行の都度変わる実行結果はコミットしたくない。 実質的なソースコードの変更のみコミットしたい。 コミット前後で実行結果が勝手に削除されたくない。 ローカルのファイルに対して変更は加えたくない。 これを実現する手順を述べます。 方針 jupyter notebookはJSON形式で保存されています。 実質的なソースコード、実行結果、メタ情報など、それぞれ異なるキーで格納されています。 そこで、gitのフィルタ処理*1にて、コミット直前に実行結果のキーに対応する値をnullとして扱い、コミットするように設定します。 手順 1) gitリポジトリ作成 $ mk
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く