1

を介して別の実行可能ファイルを呼び出すセルマジックを使用して、IPython 拡張機能を作成していますpexpect。カーネルの存続期間中、この実行可能ファイルをバックグラウンドで実行し続けます。カーネル割り込みが発生したときにこのサブプロセスを送信できるフックはどこかにありますかCtrl-C(たとえば、IPython Notebook の [Interrupt Kernel] メニュー オプション)。

4

1 に答える 1

2

答えとして再投稿:

IPython は、端末で Ctrl-C を押したときに発生するのと同じシグナルである SIGINT を送信することによって、カーネルに割り込みます。したがって、独自のコードの実行中にキャッチしたい場合は、次KeyboardInterruptのようにキャッチするだけで済みます。

p.sendline('some command')
try:
    p.expect(processing_finished_mark)
except KeyboardInterrupt:
    p.sendintr()
于 2013-09-26T23:50:33.763 に答える