以下脚本运行良好:
$ python myscript.py
当我尝试使用 cProfile 分析我的代码时:
$ python -m cProfile -s time myscript.py
或者
$ python -m cProfile myscript.py
我收到以下错误:
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py", line 121, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py", line 34, in _run_code
exec code in run_globals
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 190, in <module>
main()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 183, in main
run('execfile(%r)' % (sys.argv[0],), options.outfile, options.sort)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 36, in run
result = prof.print_stats(sort)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 81, in print_stats
pstats.Stats(self).strip_dirs().sort_stats(sort).print_stats()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/pstats.py", line 92, in __init__
self.init(arg)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/pstats.py", line 106, in init
self.load_stats(arg)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/pstats.py", line 130, in load_stats
arg.create_stats()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 92, in create_stats
self.snapshot_stats()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cProfile.py", line 106, in snapshot_stats
callersdicts[id(entry.code)] = callers
TypeError: 'int' object is not callable
我的脚本在这两种情况下都成功运行,只是在后一种情况下它会阻塞 cProfile。我知道它必须是非常小的东西,只是无法确定它。
请帮我解决。谢谢
最佳答案
您有一个名为 id
的整数变量,它屏蔽了内置函数 id
。这搞砸了 cProfile
。
重命名 id
变量,cProfile
应该可以正常工作。
关于python cProfile给出 'int'对象不可调用错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7490079/