Einen Python-Traceback ohne Ausnahme erhalten
Angenommen, Sie haben diese Module:
module1.pyimport module2
def a():
module1.b()
def c():
print "Hi guys!"
module2.pyimport module1
def b():
module1.c()
Ich möchte eine Funktionfunc(a())
das erzeugt eine ähnliche Ausgabe wie diese: (= ein Traceback?)
/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!"
Möglicherweise ist dies mit den Standardmodulen möglichtraceback
und / odercgitb
und / oderinspect
Es fällt mir jedoch schwer, diese Module aus der Dokumentation herauszufinden.
Ich dachte, das wäre möglichtraceback.print_stack(a())
aber es wurde aus irgendeinem Grund für immer geladen. Ich habe andere Funktionen in diesen Modulen ausprobiert, aber ohne Erfolg.
@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()')
Nun, wenn ich es tue:python trapy_module.py
Ich bekomme:
--- modulename: trapy, funcname: <module>
<string>(1):
Ersetzenimport random
mitimport pyglet
undrandom.random()
mitpyglet.app.run()
läuft einfach weiter, ohne etwas auszugeben.