2

ipythonqt シェルが開いていて、シェルがスクリプトを実行しているとします。シェルをリアルタイムで複製する方法はありますか (つまり、現在最初のシェル/カーネルのメモリ状態に関連付けられているすべてのオブジェクトのコピーが含まれるように、別の ipython シェルを開きます)。これの目的は (とりわけ)、元のシェルがそのスクリプトを実行している進行状況を検査できるようにすることです。ありがとう。

4

2 に答える 2

2

IPython は、複数のコンソールを備えたインタープリター カーネルを中心に設計されています。私が始めるとき

ipython console

バナー テキストで次のように報告されます。

[IPKernelApp] To connect another client to this kernel, use:
[IPKernelApp] --existing kernel-6795.json

したがって、別のシェルで実行ipython console --existing kernel-6795.jsonしてから、1つのシェルに入力できます

pid = os.getpid()

そして他のシェルで:

print pid

NameError を取得せずに。これまでこの機能を使用したことがなかったので、プロセスとしてどのように実装されているかを調べましipythonpython。実際、os.getpid()両方のシェルで同じ PID を提供します。

ただし、1 つのシェルがコードを実行している場合、最初のシェルがコマンド プロンプトに戻るまで、2 番目のシェルはブロックされます。イベント駆動型がこれをどのように処理するかはまだわかりipython qtconsoleません。

于 2013-07-05T15:17:02.293 に答える