Python中timeit模块导入未识别,遇NameError问题求助
Jupyter Notebook中timeit导入失败,仅新单元格导入生效的问题分析与解决
问题场景
在Jupyter Notebook中导入timeit模块后,执行timeit.timeit(stmt, setup, number=100000)时触发NameError: name 'timeit' is not defined错误。重新编写导入语句无效,模块无语法高亮,仅将import timeit放在新单元格执行后,模块才能正常调用。
可能原因
- 单元格执行顺序错误:Jupyter的单元格执行顺序由用户点击运行的顺序决定,而非排版顺序。如果导入
timeit的单元格未被执行,或执行晚于调用代码的单元格,就会出现找不到模块的错误。 - 单元格内代码冲突:若导入
timeit的单元格中存在timeit = 某个值这类赋值语句,会覆盖模块引用,导致后续调用失败。 - 内核状态异常:长时间运行的内核可能出现状态紊乱,导致导入语句无法正确加载模块,新单元格的导入操作可能会触发内核重新处理模块加载逻辑。
解决办法
- 确认执行顺序:检查单元格左侧的执行序号(蓝色为已执行,灰色为未执行),确保
import timeit的单元格在调用代码的单元格之前执行。 - 清理冲突代码:排查导入单元格内是否有覆盖
timeit名称的代码,删除或重命名相关变量。 - 重启内核:点击顶部菜单栏「Kernel」→「Restart」,之后按从上到下的顺序重新执行所有单元格,修复内核状态异常问题。
- 保留新单元格导入方式:如果上述方法无效,可继续使用将
import timeit单独放在新单元格的方式,这是已验证有效的临时解决方案。
内容的提问来源于stack exchange,提问作者TheDucksmith
相关产品推荐
相关产品推荐

