cProfile模块没有runctx属性。

3
我正在尝试学习Cython,正在按照官方文档进行操作。最近,我尝试完成“http://docs.cython.org/en/latest/src/tutorial/profiling_tutorial.html”中提供的教程。 这里的目标是对一个Cython文档进行性能分析。 这就是我遇到麻烦的地方。
要进行性能分析的函数是(文件“calc_pi.py”):

def recip_square(i):
    return 1./i**2

def approx_pi(n=10000000):
    val = 0.
    for k in range(1,n+1):
        val += recip_square(k)
    return (6 * val)**.5

“用于对函数进行分析的脚本(如文档中所发布的)是:”

import pstats, cProfile

import calc_pi

cProfile.runctx("calc_pi.approx_pi()", globals(), locals(), "Profile.prof")

s = pstats.Stats("Profile.prof")
s.strip_dirs().sort_stats("time").print_stats()

我不确定应该运行哪个命令,也不确定是否是这个命令导致了错误。然而,在他们的页面上,没有提到这个问题。所以我只是运行了"python3 profile.py",结果出现了以下错误:
AttributeError: module 'cProfile' has no attribute 'runctx'
我知道我的错误可能很愚蠢和微小,但在经过一段时间的谷歌和查看stackoverflow之后,我找不到答案。
感谢您的帮助。

2
这是不是这个问题 - 也就是说,你是否正在导入一个名为cProfile的不同模块? - DavidW
1个回答

9
我在这里遇到了相同的问题。问题出在文件名为profile.py。只需使用不同的名称(如这里所建议的)即可解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接