コマンドラインから非対話的にIPython/Jupyterノートブックを実行し、結果の.ipynb
ファイルは実行の結果とともに保存されました。まだ可能でない場合、phantomJS、カーネルのオン/オフを切り替えるもの、Webサーバーのオン/オフを切り替えるものを実装するのはどれくらい難しいでしょうか?
具体的には、ノートブックをすでに持っていると仮定しますoriginal.ipynb
そしてそのノートブックのすべてのセルを再実行し、結果を新しいノートブックに保存しますnew.ipynb
、ただし、ブラウザでの操作を必要とせずに、またはカーネルまたはWebサーバーを閉じずに、カーネルまたはWebサーバーが既に実行されていないと仮定して、コマンドラインで1つのコマンドでこれを行います。
コマンド例:
$ ipython notebook run original.ipynb --output=new.ipynb
はい、それは可能であり、簡単です。(ほとんど)2.0のIPythonコアにあります。今のところ これらの例 を見ることをお勧めします。
[編集]
$ jupyter nbconvert --to notebook --execute original.ipynb --output=new.ipynb
現在、Jupyter NbConvertにあります。 NbConvertには、デフォルトで無効になっているPreprocessor
sの束が付属しており、そのうちの2つ(ClearOutputPreprocessor
とExecutePreprocessor
)が重要です。 c.<PreprocessorName>.enabled=True
(Pythonの大文字)を使用して(ローカル|グローバル)構成ファイルで有効にするか、コマンドラインで--ExecutePreprocessor.enabled=True
を使用して残りのコマンドを通常どおりに維持できます。
--ExecutePreprocessor.enabled=True
には、NbConvertの最新バージョンで使用できる便利な--execute
エイリアスがあります。必要に応じて、--inplace
と組み合わせることができます
たとえば、ヘッドレスノートブックを実行した後、htmlに変換します。
$ jupyter nbconvert --to=html --execute RunMe.ipynb
出力を除去した後、PDFに変換する
$ ipython nbconvert --to=pdf --ClearOutputPreprocessor.enabled=True RunMe.ipynb
これは(もちろん)<insert-your-language-here>
を設定した場合、--profile=<your fav profile>
カーネルを生成することにより、非Pythonカーネルで動作します。変換は、ノートブックを再実行する必要があるため、非常に長くなる可能性があります。 --to=notebook
オプションを使用して、ノートブックからノートブックへの変換を行うことができます。
ユースケースに応じて設定/設定解除が必要になる可能性のある他のさまざまなオプション(タイムアウト、エラーを許可、...)があります。詳細については、ドキュメントおよびもちろんjupyter nbconvert --help
、--help-all
、または nbconvertオンラインドキュメント を参照してください。
この機能がコアの一部になるまで、必要なことを実行する小さなコマンドラインアプリを作成しました。これはrunipyと呼ばれ、pip install runipy
でインストールできます。 ソースとreadmeはgithubにあります 。
並列ワーカーや入力パラメーターなどの一部の機能をカバーするには、jupyter-runnerをインストールできます
pip install jupyter-runner
GithubのReadme: https://github.com/omar-masmoudi/jupyter-runner