You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python统计程序执行时间导入自定义模块报time未定义报错求解

错误原因

你的自定义模块(包括nod16及其依赖的其他自定义模块)中存在修改全局命名空间的操作,要么是执行了del time删除了time模块的引用,要么是通过通配符导入、定义同名变量/函数的方式覆盖了time的原有指向,才会在执行print语句时找不到time的定义。

解决方案

临时规避方案(无需修改自定义模块)

将time模块绑定到不会被覆盖的局部别名,避免后续导入操作影响计时逻辑:

# 给time模块起独有的别名,防止被后续导入覆盖
import time as _timer
start_time = _timer.time()

import nod16

print("--- %s seconds ---" % (_timer.time() - start_time))

或者用闭包完全隔离命名空间:

import time

def runtime_timer():
    start = time.time()
    return lambda: time.time() - start

get_runtime = runtime_timer()
# 后续导入操作不会影响闭包内的time引用
import nod16
print(f"--- {get_runtime()} seconds ---")

根源修复方案

如果要定位问题所在的模块,可以加调试信息逐次验证:

import time
print(f"导入自定义模块前time的引用id:{id(time)}")
# 逐行导入你的16个自定义模块,每次导入后打印time的状态
import nod1
print(f"导入nod1后time是否存在:{'time' in dir()}")
import nod2
print(f"导入nod2后time是否存在:{'time' in dir()}")
# ...依次导入到nod16

找到导致time引用失效的模块后,检查模块内是否有del time、from xxx import *、自定义名为time的变量/函数的逻辑,修改对应代码即可从根源解决问题。

内容的提问来源于stack exchange,提问作者slow_learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:36:03