125

スクリプトがコマンドラインから起動された場合でも、Python スクリプトを実行中の任意の時点でプログラムで強制的に REPL にドロップする方法はありますか?

標準入力またはファイルからデータを読み取り、プロットし、REPL にドロップして、プロットをカスタマイズできるようにする、迅速で汚いプロット プログラムを作成しています。

4

7 に答える 7

144

私はこれを頻繁に使用します:

def interact():
    import code
    code.InteractiveConsole(locals=globals()).interact()
于 2009-09-08T21:18:44.980 に答える
113

Python のインタラクティブ オプションを使用してみることができます。

python -i program.py

これにより、program.py のコードが実行され、REPL に移動します。program.py の最上位レベルで定義またはインポートしたものはすべて使用可能になります。

于 2009-09-08T20:34:12.070 に答える
49

これを行う方法は次のとおりです(IPython> v0.11):

import IPython
IPython.embed()

IPython <= v0.11 の場合:

from IPython.Shell import IPShellEmbed

ipshell = IPShellEmbed()

ipshell() # this call anywhere in your program will start IPython

Python REPL の Cadillac である IPython を使用する必要があります。http://ipython.org/ipython-doc/stable/interactive/reference.html#embedding-ipythonを参照してください

ドキュメントから:

また、自動化された計算集約的な部分を実行してから、データやプロットなどを見るために停止することが一般的な科学計算の状況でも役立ちます。IPython インスタンスを開くと、データと関数に完全にアクセスできます。インタラクティブな部分が完了したら、プログラムの実行を再開できます (おそらく、必要に応じて何度でも停止できます)。

于 2009-09-08T20:31:58.887 に答える
18

iPython とデバッガーの機能を利用するには、 ipdb を使用する必要があります

以下を追加して、pdb と同じ方法で使用できます。

import ipdb
ipdb.set_trace()
于 2009-09-08T21:48:45.433 に答える
18

デバッガーを起動できます。

import pdb;pdb.set_trace() 

REPL の目的は不明ですが、デバッガーは非常に似ています。

于 2009-09-08T19:42:26.763 に答える