16

Jupyter ノートブックがあり、ノートブックを開いたときにすべてのセルが自動的に実行されるように設定しようとしています。

この動作は、ウィジェットを含むノートブックの保存された出力とは異なります。ウィジェットは、それらを含むセルが実行されたときにのみレンダリングされるようです。次の例を検討してください。

from IPython.display import display
from IPython.html.widgets import IntSlider

w = IntSlider()
display(w)

セルが実行されるまでスライダーは表示されません。

これは、ノートブックのメタデータまたは構成ファイルを介して達成できるものですか?

編集: https://try.jupyter.org/は次のようなことをしているようです: ページを開いたときにノートブックが実行されておらず、開いたときに出力が表示されていることに注意してください。

EDIT2:例を追加します。

4

3 に答える 3

22
  1. 以下のスニペットを通常の (コード) セルに貼り付けます。
  2. それを実行します([Ctrl + Enter]を押します)、そして
  3. ノートブックを保存します。

次回(再)ロードすると、すべてのセルが実行され、チェックポイントが更新された出力とともに保存されます。

%%html
<script>
    // AUTORUN ALL CELLS ON NOTEBOOK-LOAD!
    require(
        ['base/js/namespace', 'jquery'], 
        function(jupyter, $) {
            $(jupyter.events).on("kernel_ready.Kernel", function () {
                console.log("Auto-running all cells-below...");
                jupyter.actions.call('jupyter-notebook:run-all-cells-below');
                jupyter.actions.call('jupyter-notebook:save-notebook');
            });
        }
    );
</script>

上記のセルの出力をクリアする場合は、手順 2 と 3 を繰り返す必要があることに注意してください。

ヒント

おそらく達成しようとしていることに対して、これらのより適切な解決策を検討することができます。

  • Jupyer Thebe : ipython-kernels バックエンドと通信する静的ページにコード スニペットを埋め込みます。
  • 交流するinteract :ノートブックからElectronベースのアプリケーションを構築します。
  • ダッシュボード: ノートブック セル出力 (「ダッシュボード」) のグリッドを事前構成し、それらをパッケージ化し、スタンドアロンの Web アプリとして提供できるようにするための「公式」の取り組み。

この記事で状況の概要を確認できます。

論争

他のサイトでも似たような質問が以前 出されていましたが、この googlegroup スレッドでは、誰かが解決策を提出し、グループ モデレーターがそれを削除しました (!)

于 2016-08-09T17:17:43.673 に答える
6

これを非常に簡単に行う方法を見つけました。nbextensions パッケージ ( https://github.com/ipython-contrib/jupyter_contrib_nbextensions ) をインストールすると、拡張機能の 1 つが「初期化セル」と呼ばれ、ノートブックの読み込み時に特定のセルを自動的に実行するようにマークできます。

于 2016-09-23T17:27:45.527 に答える
3

これが可能だとは思いません。

ipython は、1) 意図的で 2) 信頼されていない限り、コードを実行しません。そうしないと、悪意のあるコードを含むノートブックをロードする状況に遭遇します。

ipythons セキュリティ モデルの詳細は、https ://ipython.org/ipython-doc/dev/notebook/security.html で確認できます。具体的には、ノートブックを開いたときのコード実行について説明しているセクション:

ノートブックに明示的な信頼を設定することはできますが、これによって自動コード実行も許可されるかどうかはわかりません。私はそのようなものを見たことがありませんが、おそらく私は十分に調べていませんでした. ただし、自動コード実行はコア ipython パッケージで利用できるものではないことを他の場所で見ました。ここでこの問題を確認してください: https://github.com/ivanov/ipython-trainingwheels/issues/35

信頼を超えて、これが不可能であると私が疑うもう 1 つの理由は、1) 自動コード実行がノートブックに現在保存されている既存の出力を置き換えるため、これは理想的ではない可能性があること、および 2) 一部のノートブックには計算上の複雑なコードが含まれている可能性があるためです。高価で、ノートブックを開くたびに実行したくないでしょう。

于 2015-08-13T09:40:49.693 に答える