Pythonスクリプトを実行時の任意の時点で強制的に強制的にREPLにドロップする方法はありますかコマンドライン?PythonコードからREPL(Read、Eval、Print、Loop)をドロップする方法
私は、標準入力またはファイルからデータを読み込み、プロットして、REPLにドロップして、プロットをカスタマイズできるようにする、素早く汚いプロットプログラムを書いています。
Pythonスクリプトを実行時の任意の時点で強制的に強制的にREPLにドロップする方法はありますかコマンドライン?PythonコードからREPL(Read、Eval、Print、Loop)をドロップする方法
私は、標準入力またはファイルからデータを読み込み、プロットして、REPLにドロップして、プロットをカスタマイズできるようにする、素早く汚いプロットプログラムを書いています。
あなたはPythonのためのインタラクティブなオプションを使用して試みることができる:
python -i program.py
これは、REPLに行き、その後、program.pyでコードを実行します。 program.pyのトップレベルで定義またはインポートするものはすべて利用可能です。あなたはあなたがのほかに、PDBと同じようにそれを使用することができますipdb、
を使用する必要がありますiPythonの使用やデバッガの機能を取得するには
def interact():
import code
code.InteractiveConsole(locals=globals()).interact()
は、あなたがそれ(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
あなたはIPython、PythonのREPLsのキャデラックを使用する必要があります。ドキュメントからhttp://ipython.org/ipython-doc/stable/interactive/reference.html#embedding-ipython
を参照してください:
また、データを見て停止し、いくつかの自動、 計算集約一部と を行う必要があるために 一般的である科学的 コンピューティングの状況で役立ちますプロットなど IPythonインスタンスを開くと、データと 関数へのフルアクセスが になり、 インタラクティブパート(perha)を実行するとプログラム の実行を再開できます後で をもう一度、必要に応じて何度も停止させるps)。
IPythonは素晴らしいですが、OPが組み込みのPythonだけを使用するソリューションを望んでいる場合、Jasonのcode.InteractiveConsole()ソリューションは、どのように「行うべきか」の方法です。 :-) –
私は頻繁にこれを使用します:私はちょうど私の自身のスクリプトのいずれかでこれをやった
import ipdb
ipdb.set_trace()
"code"モジュールのドキュメントは、次のURLにあります。http://docs.python.org/library/code.html –
これより簡単なこともできます。 code.interact(local = locals()) –
'pdb'の中で' interact'を使うことができます。 – gerrit
:
(それが楽器に巨大な面倒くさされ自動化フレームワーク内で実行されます):
x = 0 # exit loop counter
while x == 0:
user_input = raw_input("Please enter a command, or press q to quit: ")
if user_input[0] == "q":
x = 1
else:
try:
print eval(user_input)
except:
print "I can't do that, Dave."
continue
ブレークポイントが必要な場所に配置し、Pythonインタプリタと同じ構文を使用して状態をチェックできます(ただし、モジュールの読み込みはできません)。 あまりエレガントではありませんが、他の設定は必要ありません。
暗いところに切り替える準備ができたら、ipython -i program.pyがそこにあります。 – joeforker
印象的でシンプルです。 – Nishant
あなたはちょうど私の心を吹いた。 – Bemmu