ターミナルから.ipynb Jupyter Notebookを実行する方法は?


159

.ipynbファイルにコードがあり、IPython Notebookの「インタラクティブ」機能が本当に必要ないところまでコードを取得しました。Macターミナルコマンドラインから直接実行したいのですが。

基本的に、これが単に.pyファイルである場合、コマンドラインからpython filename.pyを実行するだけでよいと思います。.ipynbファイルに似たものはありますか?


このようなもの:github.com/paulgb/runipy
idjaw 2016

そんな感じ。input私のipythonノートブックにいくつかの記述がありますが、これらに問題があるようです
Vincent

回答:


107

コマンドラインから、次のコマンドでノートブックをPythonに変換できます。

jupyter nbconvert --to python nb.ipynb

https://github.com/jupyter/nbconvert

python mistuneパッケージをインストールする必要があるかもしれません:

sudo pip install -U mistune

14
サブコマンドipython nbconvertは、jupyter nbconvertを支持して非推奨になりました
PenguinEngineer

6
この答えは正しいとは思いません。IIは機能することを認識していますが、問題は、ターミナルから.ipynbを実行する方法であり、.pyに変換して実行する方法ではありません。
ジャコモ

3
セルの実行に30秒以上かかる場合、nbconvertは失敗します--ExecutePreprocessor.timeout=600。追加することをお勧めします。
bckygldstn

最新の更新により、このように機能し、ノートブックファイルからHTMLを取得しますjupyter-nbconvert --execute 03-Print\ Formatting\ with\ Strings.ipynb
b-ak

160

nbconvertを使用すると、--executeフラグを使用してノートブックを実行できます。

jupyter nbconvert --execute <notebook>

ノートブックを実行して新しいノートブックを作成する場合は、以下を追加できます--to notebook

jupyter nbconvert --execute --to notebook <notebook>

または、既存のノートブックを新しい出力で置き換える場合:

jupyter nbconvert --execute --to notebook --inplace <notebook>

これは非常に長いコマンドなので、エイリアスを使用できます。

alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>

1
これはconda仮想環境の背後では機能しないようです
Ramesh-X

9
これにより、ノートブックが静的なHTMLページに変わります
JimDaniëlTeunis 2018

3
ノートブックを実行するためのドキュメントまたはこれとプログラムによる方法は、nbconvert.readthedocs.io
en /

実行するセルを指定する方法はありますか?例えば、セル10及び全て以下、又はセル20の範囲のセル10
アルコンラッド

2
また、実行時間の長いセルがある場合は、設定できます --ExecutePreprocessor.timeout=[timeout_in_seconds]-1制限なしで使用)。
Zaccharie Ramzi

38

からすべてのコードをエクスポート.ipynbして、.pyスクリプトとして保存できます。その後、ターミナルでスクリプトを実行できます。

コードエクスポートサンプル

それが役に立てば幸い。


この答え(y)
ColinMac

3
元の質問に回答しない
baxx


10

新しいバージョンの場合:

ipython nbconvert --to python <YourNotebook>.ipynb

あなたはipythonのjupyterインスタンスを使うことができます:

jupyter nbconvert --to python <YourNotebook>.ipynb

これは質問に対する答えですか?
baxx

4

見やすくするために、作成者による引用コメントで更新:

著者のメモ「このプロジェクトはJupyterの実行APIの前に開始されました。これは現在、コマンドラインからノートブックを実行するための推奨される方法です。runipyは非推奨で保守されていないことを考慮してください。」–セバスチャンパルマ

端末でコードを実行できるrunipyライブラリをインストールします

pip install runipy

コードをコンパイルした後:

runipy <YourNotebookName>.ipynb

cronjobも試すことができます。すべての情報はこちら


11
著者のメモ「このプロジェクトはJupyterの実行APIの前に開始されました。これは現在、コマンドラインからノートブックを実行するための推奨される方法です。runipyは非推奨で保守されていないことを考慮してください。」
セバスチャンパルマ

3

私の場合、私に最も適したコマンドは次のとおりです。

jupyter nbconvert --execute --clear-output <notebook>.ipynb

どうして?このコマンドは(.pyファイルのように)追加のファイルを作成せず、セルの出力はノートブックが実行されるたびに上書きされます。

実行すると:

jupyter nbconvert --help

--clear-output現在のファイルの出力をクリアして所定の場所に保存し、既存のノートブックを上書きします。



0

ターミナルから

jupyter nbconvert --execute --to notebook --inplace --allow-errors --ExecutePreprocessor.timeout=-1 my_nb.ipynb

デフォルトのタイムアウトは30秒です。-1は制限を解除します。

出力ノートブックを新しいノートブックに保存する場合は、フラグを使用できます --output my_new_nb.ipynb


0

同じ問題があり、製紙工場を見つけました。他のソリューションに対する利点は、ノートブックの実行中に結果を確認できることです。ノートブックに非常に時間がかかるときに、この機能が面白いと思います。使い方はとても簡単です:

pip install papermill
papermill notebook.ipynb output.ipynb

また、出力ファイルをAmazon S3、Google Cloudなどに保存するなどの便利なオプションもあります。詳細については、ページを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.