Google App Engine で開発していて、標準デバッガの pdb を使おうとして困ったのでその顛末のメモです。
import pdb; pdb.set_trace()
と書いても、期待通りに動作しません。stdin と stdout の向き先が変わっているので、画面への表示とキーボードからの入力ができないのだと思います。
有用なブログのコメントを見つけましたので、そのままパクり。
gaedb.py というファイルを作っておきます。
# gaedb.py
def set_trace():
import pdb, sys
debugger = pdb.Pdb(stdin=sys.__stdin__,
stdout=sys.__stdout__)
debugger.set_trace(sys._getframe().f_back)
で、アプリケーションコード内で、
import gaedb; gaedb.set_trace()
と書けば、期待通りの pdb.set_trace() 動作します。ちゃんちゃん。