我正在尝试学习有关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中所建议)