2012-03-13 17 views
15

はIPythonの私のアクションは、次のとおりです。今、私のモジュールは任意の実行可能コードを欠いデバッグを使ってIPythonでコマンドを実行することはできますか?ここ

> import my_module 
> import ipdb 

、それだけでクラスを宣言します。だから私は声明をしたい:

> g = my_module.Graph() 
> f = open('test.osm') 
> g.from_osm(f) 

ファイルを編集せずにGraph.from_osmの中にブレークポイントを入れたいと思う。私は後者の行をファイルに入れて、python -m ipdb ...を実行したくありません。私はちょうどコマンドを実行し、デバッグしたい。

これは可能ですか?

を追加しました:私が見る、それは

%run -d script_name 

または

> import pdb 
> pdb.run('statement') 

することが可能ですが、それはipdb.run('statement')を行うことは不可能だ、ipdbには.runありません!

+1

ipdb 0.8には '.run'があります。 – gerrit

+1

[IPythonの関数にステップインする]の重複可能性があります(http://stackoverflow.com/questions/12646670/stepping-into-a-function-in-ipython) – LondonRob

答えて

2

Since IPython 3.2.2%debugマジック(一行またはセル)は、デバッガで実行されます。

  • 何かを実行する前にブレークして、ブレークポイントを設定したり、コードをステップインしたりする機会を与えます。
  • そして、もう1つのブレークポイントを設定する引数(コマンドの一部としてコマンドヒストリに保存され、繰り返し呼び出すためのタイピングを保存します)を受け入れます。
2

おそらく、 '魔法' はIPythonで%デバッグおよび/または%PDBはあなたを助けることができるコマンド。

+5

いいえ、それは私が探しているものではありません。彼らは例外で両方停止します。私はちょうどステップごとにプログラムの実行を見たいと思う。 –

+0

'IPython 5'の時点で、' debug'は何かを実行する前に止まり、ブレークポイントを設定したり、コードを進めることができます。 –

関連する問題