次のモジュールがあるとします。
module1.py
import module2
def a():
module1.b()
def c():
print "Hi guys!"
module2.py
import module1
def b():
module1.c()
func(a())
これと同様の出力を生成する関数が必要です:(=トレースバック?)
/usr/local/lib/python2.7/dist-packages/test/module1.py
3 def a():
4 module1.b()
1 import module1
/usr/local/lib/python2.7/dist-packages/test/module2.py
3 def b():
4 module1.c()
1 import module2
/usr/local/lib/python2.7/dist-packages/test/module1.py
6 def c():
7 print "Hi guys!"
標準モジュールtraceback
および/またはcgitb
および/またはで可能かもしれませんがinspect
、ドキュメントからこれらのモジュールを理解するのに苦労しています。
可能だと思ったtraceback.print_stack(a())
のですが、どういうわけかずっとロードし続けていました。それらのモジュールで他の機能を試しましたが、成功しませんでした。
更新3
@jterrace
python trapy_module.py:
import trace
def trapy(arg):
tracer = trace.Trace()
tracer.run(arg)
r = tracer.results()
r.write_results()
if __name__ == '__main__':
import random
trapy('random.random()')
今私がするとき:
python trapy_module.py
私は得る:
--- modulename: trapy, funcname: <module>
<string>(1):
との置換import random
はimport pyglet
、何も出力せずに実行を継続しますrandom.random()
。pyglet.app.run()