Jupyter ノートブックがプレーン テキスト ドキュメントだったらいいのにといつも思っていませんか?お気に入りの IDE で編集できたらいいのにと思いませんか?バージョン管理を行うときに、明確で意味のある差分を取得しますか?そうすれば、Jupytext があなたが探しているツールになるかもしれません。
py:percent
形式でエンコードされた Python ノートブックには.py
拡張子があり、次のようになります。
# %% [markdown]
# This is a markdown cell
# %%
def f(x):
return 3*x+1
ノートブックの入力 (およびオプションでメタデータ) のみが含まれます。テキスト ノートブックはバージョン管理に適しています。 IDE で編集またはリファクタリングすることもできます。上記の.py
ノートブックは通常の Python ファイルです。
コードがほとんど含まれるノートブックにはpercent
形式をお勧めします。 percent
形式は、Julia、Python、R、およびその他の多くの言語で使用できます。
ノートブックがドキュメント指向である場合は、Markdown ベースの形式 (拡張子.md
が付いたテキスト ノートブック) の方が適切な場合があります。ノートブックで何をするかによっては、Jupyter Book、Quarto Markdown、さらには Pandoc Markdown と非常にうまく相互運用できる Myst Markdown 形式を好む場合があります。
Jupyter に使用する Python 環境に Jupytext をインストールします。どちらかを使用してください
pip install jupytext
または
conda install jupytext -c conda-forge
次に、Jupyter Lab サーバーを再起動し、Jupyter で Jupytext がアクティブになっていることを確認します。.py .md
.py
にはノートブック アイコンがあり、Jupyter Lab で右クリックするとノートブックとして開くことができます。
拡張子が.py
または.md
のテキスト ノートブックは、バージョン管理に適しています。これらは IDE で簡単に編集または作成できます。右クリックして、Jupyter Lab でノートブックとして開いて実行できます。ただし、テキスト ノートブックにはノートブックの入力のみが保存されるため、ノートブックを閉じるとノートブックの出力は失われます。
テキストノートの代わりに便利なのがペアノートです。これらは 2 つのファイル ( .ipynb
と.py
のセットで、同じノートブックが含まれていますが、形式は異なります。
ペアになったノートブックの.py
バージョンを編集し、 [ディスクからノートブックを再ロード]を選択して編集内容を Jupyter に戻すことができます。出力は.ipynb
ファイルが存在する場合、そこから再ロードされます。 .ipynb
バージョンは、次回 Jupyter でノートブックを保存するときに更新または再作成されます。
Jupyter Lab でノートブックをペアリングするには、コマンド パレットからPair Notebook with percent Script
を使用します。
特定のディレクトリ内のすべてのノートブックをペアにするには、次の内容を含む構成ファイルを作成します。
# jupytext.toml at the root of your notebook directory
formats = "ipynb,py:percent"
Jupytext はコマンド ラインでも使用できます。あなたはできる
jupytext --set-formats ipynb,py:percent notebook.ipynb
とペアリングしますjupytext --sync notebook.py
を使用してペアのファイルを同期します (入力は最新のペアのファイルからロードされます)jupytext --to ipynb notebook.py
を使用して、ある形式のノートブックを別の形式に変換します (特定の出力ファイルが必要な場合は-o
を使用します)jupytext --pipe black notebook.ipynb
を使用して、ノートブックをリンターにパイプします。 これは簡単なハウツーです:
.ipynb
ノートブックを開き、Jupyter Lab のペアコマンドまたはグローバル構成ファイルを使用して、それを.py
ノートブックとペアリングします。.py
ノートブックが作成されます.py
ノートブックをバージョン管理に追加します.ipynb
ファイルをバージョン管理から除外することもできます (出力のバージョン管理を希望する場合を除く)。 Jupytext は、ユーザーが.py
ノートブックを開いて保存すると、ローカルで.ipynb
ファイルを再作成します。
Git を介した Jupyter ノートブックでのコラボレーションは、テキスト ファイルでのコラボレーションと同じくらい簡単になります。
.py
ノートブックがバージョン管理下にあると仮定します (上記を参照)。それから、
.py
ノートブックをプルします.ipynb
ファイルが作成されますnotebook.py
ファイルをプッシュします。 diff は、Python スクリプトの標準的な diff に他なりません。notebook.py
スクリプトをプルし、ブラウザを更新します。入力セルは、 notebook.py
の新しい内容に基づいて更新されます。出力はローカルの.ipynb
ファイルから再ロードされます。最後に、カーネル変数は変更されないため、変更されたセルのみを実行して新しい出力を取得するオプションがあります。ノートブックを.py
ファイルと組み合わせると、IDE でノートブックの.py
表現を簡単に編集またはリファクタリングできます。
.py
ノートブックの編集が完了したら、Jupyter でノートブックを再ロードして最新の編集内容を取得するだけです。
注: ペアになった.py
ファイルを編集する場合は、Jupyter で.ipynb
ノートブックを閉じる方が簡単です。そうする義務はありません。ただし、そうでない場合は、ポップアップ メッセージを注意深く読む準備ができている必要があります。前回のリロード以降、ペアになった.py
ファイルもディスク上で編集されているときに、Jupyter がノートブックを保存しようとすると、競合が検出され、ノートブックのバージョン (メモリ内またはディスク上) がどちらであるかを決定するよう求められます。適切なもの。
Jupytext の詳細については、ドキュメントを参照してください。
Jupytext を初めて使用する場合は、FAQ またはチュートリアルから始めるとよいでしょう。
Jupytext については、次のような短い紹介もあります。