2017-11-16 10 views
0

matlabと同様に、Jupyterにはデバッグモードで機能を実行する可能性がありますか?実行はブレークポイントで中断され、実行モードではブレークポイントは無視されますか?Jupyterのデバッグと実行モード

from IPython.core.debugger import set_trace 

def debug(y): 
    x = 10 
    x = x + y 
    set_trace() 
    for i in range(10): 
     x = x+i 
    return x 

debug(10) 

ような単純な例で は、それは我々がset_traceが無視され、機能が正常に実行されるように関数を呼び出すことは可能でしょうか?

私はこの機能を使用するために、多くの設定トレースを配置しています。トレースなしで実行したいときは、設定したすべてのトレースにコメントする必要があります。簡単な方法がありますか?

+0

あなたは[Spyder](https://pythonhosted.org/spyder/)を考えましたか? Matlabと同等のインターフェイスを備えています。 –

+0

私は実際に自分の仕事にノートを使っています。 – Waleed

答えて

2

私はJupyterでこれを直接行うことはできませんが、このような方法でサルのパッチset_trace()を出すことができます(これを自分のセルに入れて再実行できるようにしてくださいそのため、あなたは)戻ってデバッグをオンにする場合:これは何

from IPython.core.debugger import set_trace 
debug_mode = False #switch this to True if you want debugging back on 
if not debug_mode: 
    def pass_func(): 
    pass 
    set_trace = pass_func 

はそれだけでpassをますので、毎回set_trace()が呼び出されるだけで何もしない機能を、する名前set_traceを再バインドです。

デバッグを元に戻す場合は、debug_modeフラグをTrueに切り替え、セルを再実行してください。これにより、set_traceという名前がIPython.core.debuggerからインポートされたset_traceに再バインドされます。

+0

私のために働く!ありがとう:) – Waleed

関連する問題