我写了一个程序,使用了很多第三方库,然后我发现在执行我的程序时,它一直打印出foo
。有什么方法可以跟踪哪个第三方库打印出foo
?Python跟踪谁打印出来?
既然是企业代码,我不能在这里发布我的代码。
我写了一个程序,使用了很多第三方库,然后我发现在执行我的程序时,它一直打印出foo
。有什么方法可以跟踪哪个第三方库打印出foo
?Python跟踪谁打印出来?
既然是企业代码,我不能在这里发布我的代码。
如果你要搜索的每个文件通过命令行的特定词: https://askubuntu.com/questions/39200/how-to-search-for-files-containing-specific-word
如果它被上传到一个Git仓库,让您在整个存储库搜索一个单词,就像在GitHub上或GitLab,然后这样做。
我不确定这是否会工作,因为我测试它的规模很小,但是如果在主程序的顶部,您重写内置打印,您可能会得到您要求的内容:
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
没有代码就很难提供帮助。您可以逐个删除这些第三方库,并查看哪一个是一个打印foos。此外,快速搜索打印('foo')可能会有所帮助 – DarkCygnus
如果没有代码,将很难知道问题 –
可能使用[pdb]跟踪代码(https://docs.python.org/2/ library/pdb.html)注意打印'foo'行为 – davedwards