如何让Perl和Python打印正在执行的程序的每一行?

我知道bash -x script.sh将在实际执行之前执行脚本打印每一行。 如何使Perl和Python解释器做同样的事情?

Devel :: Trace是Perl的模拟, 跟踪模块是Python的。

Devel::DumpTrace于2011年发布,具有比Devel::Trace更多的function,例如评估跟踪输出中的variables值。

 python -m trace -t main.py 

testing程序:

main.py

 from a import g def f(i): g(i) for i in range(3): f(i) 

a.py

 def g(i): print i 

输出:

  --- modulename: main, funcname: <module> main.py(1): from a import g --- modulename: a, funcname: <module> a.py(1): def g(i): main.py(2): def f(i): main.py(4): for i in range(3): main.py(5): f(i) --- modulename: main, funcname: f main.py(3): g(i) --- modulename: a, funcname: g a.py(2): print i 0 main.py(4): for i in range(3): main.py(5): f(i) --- modulename: main, funcname: f main.py(3): g(i) --- modulename: a, funcname: g a.py(2): print i 1 main.py(4): for i in range(3): main.py(5): f(i) --- modulename: main, funcname: f main.py(3): g(i) --- modulename: a, funcname: g a.py(2): print i 2 main.py(4): for i in range(3): --- modulename: trace, funcname: _unsettrace trace.py(80): sys.settrace(None) 

testing在Ubuntu 16.10,Python 2.7.12。