使用%%timeit单元格魔法函数测速时报not found错误如何解决
报错原因
- 语法适用环境限制:
%%timeit属于Jupyter Notebook/Lab、IPython交互终端专属的单元格魔法函数,普通Python解释器、.py后缀的Python脚本不支持该语法,运行就会抛出该错误。 - 单元格魔法使用规则不满足:
%%开头的单元格魔法必须放在当前单元格的第一行,前面不能有空格、空行、注释或者其他代码,否则会被系统识别为行魔法%timeit调用,触发找不到函数的报错。
解决办法
- 非Jupyter/IPython环境下替换为标准库写法:如果在普通Python脚本中测速,直接调用Python内置的
timeit标准库实现相同功能,示例代码如下:
import timeit import pandas as pd def calc_average(): grades = pd.Series([90,80,60,46]) total = 0 for i in grades: total += i return total / len(grades) # 执行100次测速输出耗时 print(timeit.timeit(calc_average, number=100))
- Jupyter/IPython环境下调整代码位置:确认当前运行环境是Jupyter或者IPython的前提下,将
%%timeit -n 100移到单元格的最顶部,前面不要保留任何其他内容即可正常运行。 - 临时测速可使用行魔法:如果仅需要测试单行代码的运行速度,可以直接在代码前加行魔法
%timeit,无需放在单元格顶部。
内容的提问来源于stack exchange,提问作者Mohd Rafi
相关产品推荐
相关产品推荐

