我正在尝试学习有关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:模块“ cProfile”没有属性“ runctx”


我知道我的错误可能是愚蠢且最小的,但是在Google上搜索并检查stackoverflow一段时间后,我找不到答案。

谢谢您的帮助。

最佳答案

我在这里遇到了同样的问题。

问题是文件profile.py的名称。

只需使用其他名称(如here中所建议)

10-08 17:21