Python跨文件导入依赖numpy的函数时报np未定义错误是什么原因
问题解决方法
问题根因
你贴出的A.py代码和实际执行的A.py代码不一致,从报错堆栈可以看到,当前运行的A.py第一行是import numpy,没有声明np别名,因此函数内部调用np.sum()时找不到对应的名称定义。
解决步骤
- 第一步:确认A.py的导入语句正确,完整写法如下,修改后务必保存A.py文件:
# A.py 完整正确代码 import numpy as np def get_total(list): return np.sum(list)
- 第二步:删除项目目录下的
__pycache__缓存文件夹,避免Python调用未更新的旧版本编译缓存。 - 第三步:如果是在交互式环境(Jupyter、IPython等)中运行代码,需要重启运行内核重新导入模块,也可以用以下代码重载模块避免重启:
import importlib import A importlib.reload(A) from A import get_total
扩展替代写法
如果你不想使用别名,可以调整A.py的导入和调用方式,避免名称不匹配问题:
# 写法1:直接导入numpy不设别名,调用时写全模块名 import numpy def get_total(list): return numpy.sum(list) # 写法2:直接导入需要的方法 from numpy import sum def get_total(list): return sum(list)
修改完成后重新运行B.py,即可正常输出结果15。
内容的提问来源于stack exchange,提问作者FrankWu07
相关产品推荐
相关产品推荐

