cProfile 没有属性 runctx

Posted

技术标签:

【中文标题】cProfile 没有属性 runctx【英文标题】:cProfile has no attribute runctx 【发布时间】:2018-03-31 16:30:16 【问题描述】:

我正在尝试学习如何使用 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()

我不确定要运行哪个命令,如果这是引发错误的原因。但是,在他们的页面中,没有提到 thisi。所以我只是运行“python3 profile.py”,这会产生以下错误:

AttributeError: 模块 'cProfile' 没有属性 'runctx'

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

感谢您的帮助。

【问题讨论】:

是this issue - 即您是否正在导入一个名为cProfile 的不同模块? 【参考方案1】:

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

问题是文件名profile.py

只需使用不同的名称(如here 中的建议)

【讨论】:

以上是关于cProfile 没有属性 runctx的主要内容,如果未能解决你的问题,请参考以下文章

使用 cProfile 分析 numpy 没有给出有用的结果

Python cProfile 结果似乎没有加起来

如何使 cProfile 仅打印重要功能?

cProfile 配置文件在线程内调用吗?

cProfile命令行如何减少输出

在 Python 中的文件列表上运行 cProfile