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

已导入numpy并定义别名为np仍报错NameError: np is not defined

问题根因定位
  • 核心原因是IPython/Jupyter环境的模块缓存机制:你修改customsolver.py文件前已经导入过一次该模块,环境会把旧版本的模块代码缓存下来,后续就算你修改了源文件、重新运行导入语句,默认也不会加载更新后的代码,运行的依然是修改前存在错误的旧版本代码。
  • 从报错回溯可以验证这一点:报错栈里的fsolvetol函数内部有一行被注释的import numpy as np,且第11行注释的赋值逻辑是roots[i] = 1,和你贴的最新版customsolver.py的代码完全不一致,说明当前运行的是未正确导入numpy的旧版本模块。
解决方案
  • 方案1(最稳妥):重启你的Jupyter/IPython内核,清空所有缓存的模块状态,重新从头运行所有代码即可,你当前的两份脚本的导入逻辑已经完全正确,加载新版代码后不会再触发该报错。
  • 方案2(无需重启内核):使用importlib强制重载customsolver模块,修改主脚本的导入部分为如下代码即可:
import importlib
import customsolver
importlib.reload(customsolver)
from customsolver import *
额外注意点

你当前customsolver.py末尾的if __name__ == "__main__"块里调用fsolvetol没有传入参数,直接运行该脚本时会触发参数缺失报错,如果你有直接运行该脚本的需求,补全对应测试参数即可,该问题不影响主脚本导入使用。

内容的提问来源于stack exchange,提问作者David G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:24:05