2017-07-13 53 views
-1

我写了一个程序,使用了很多第三方库,然后我发现在执行我的程序时,它一直打印出foo。有什么方法可以跟踪哪个第三方库打印出fooPython跟踪谁打印出来?

既然是企业代码,我不能在这里发布我的代码。

+0

没有代码就很难提供帮助。您可以逐个删除这些第三方库,并查看哪一个是一个打印foos。此外,快速搜索打印('foo')可能会有所帮助 – DarkCygnus

+0

如果没有代码,将很难知道问题 –

+2

可能使用[pdb]跟踪代码(https://docs.python.org/2/ library/pdb.html)注意打印'foo'行为 – davedwards

回答

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") 

运行mymain.py在IDLE结果如下输出:

C:\用户\ ######### \桌面\新建文件夹\ moduleb.py:HI

C:\用户\ ######### \桌面\新建文件夹\ mymain.py:嗨

C:\用户\ ##### #### \ Desktop \ New folder \ modulea.py:HI