Python跟踪谁打印出来?

时间:2017-07-13 18:41:47

标签: python debugging

我编写了一个程序,它使用了很多第三方库,然后我发现在程序执行期间,它一直打印出foo。有什么方法可以跟踪哪个第三方库打印出这个foo

由于它是企业代码,我无法在此处发布我的代码。

2 个答案:

答案 0 :(得分:0)

如果要通过命令行在每个文件中搜索特定单词: https://askubuntu.com/questions/39200/how-to-search-for-files-containing-specific-word

如果它被上传到允许你在整个存储库中搜索单词的git存储库,比如在GitHub或GitLab中,那么就这样做。

答案 1 :(得分:0)

我不确定这是否会有效,因为我测试的规模非常小,但如果在主程序的顶部覆盖内置打印件,您可能会得到您要求的内容为:

<强> mymain.py

import inspect
import builtins

myprint = builtins.print
def print(*args, **kwargs): 
    curframe = inspect.currentframe()
    calframe = inspect.getouterframes(curframe, 2)
    myprint(calframe[1][1],':',*args, **kwargs)
builtins.print = print

import modulea

print('Hi')
modulea.myfunc()

<强> modulea.py

import moduleb

moduleb.myfunc()

def myfunc():
    print("HI")

<强> moduleb.py

def myfunc():
    print("HI")

在IDLE中运行 mymain.py 会产生以下输出:

  

C:\ Users \ ######### \ Desktop \ New folder \ moduleb.py:HI

     

C:\ Users \ ######### \ Desktop \ New folder \ mymain.py:嗨

     

C:\ Users \ ######### \ Desktop \ New folder \ modulea.py:HI