這不是很明顯,但我發現,如果我使用trace
的countfuncs
參數,或--listfuncs
參數,如果我使用trace
在命令行中,我得到的全路徑名。因此,該程序:
import trace
from recurse import recurse
tracer = trace.Trace(count=False, trace=True, countfuncs=True)
tracer.run('recurse(2)')
tracer.results().write_results()
...(使用here道格·赫爾曼的例子)我得到以下的輸出:
functions called:
filename: <string>, modulename: <string>, funcname: <module>
filename: C:\Python33\lib\encodings\cp850.py, modulename: cp850, funcname: IncrementalEncoder.encode
filename: C:\Python33\lib\trace.py, modulename: trace, funcname: _unsettrace
filename: C:\usr\sjl\dev\test\python\recurse.py, modulename: recurse, funcname: recurse
這是不太你要找的,因爲你可以看到它忽略了跟蹤代碼行的指令,所以它沒有給出這些代碼行旁邊的文件路徑。但是,它確實告訴你Python腳本正在使用哪些文件。
[Tracing fIle path and line number]的可能重複(http://stackoverflow.com/questions/14638041/tracing-file-path-and-line-number) – aquavitae