2017-02-14 5 views
0

私はデバッガの使用にもっと慣れようとしており、http://www.onlamp.com/pub/a/python/2005/09/01/debugger.htmlに示されている例に従っています。私は現在、このスクリプトをしようとしている:私はhttps://docs.python.org/2/library/pdb.html#pdb.runから理解したようPythonデバッガ(ipdb)を使用した場合のNameError

> <string>(1)<module>() 

ipdb> n 
NameError: "name 'test_debugger' is not defined" 

、それが可能でなければなりません:私はそれを実行してnを押ししようとした場合、しかし、

#!/usr/bin/env python 

import ipdb 

def test_debugger(some_int): 
    print "start some int>>", some_int 
    return_int = 10/some_int 
    print "end some_int>>", some_int 
    return return_int 

if __name__ == "__main__": 
    ipdb.run("test_debugger(0)") 

を、私はNameError取得しますn(ext)コマンドを使用して、実際のバグまで実行してください。誰かがここで何が起こっているのか説明できますか?

+1

は 'pdb'と' ipdb'の違いはありますか? – WhatsThePoint

答えて

1

あなたが言及したドキュメントから、説明はhttps://docs.python.org/2/library/functions.html#evalにリンクしています。

あなたの呼び出しがipdb.runしているようですが()globalsまたはlocals辞書を提供していませんので、test_debuggerrunのコンテキストで定義されていません。

あなたはそれがこのように動作させることができます。

ipdb.run("test_debugger(0)", {'test_debugger': test_debugger})

関連する問題