在自定义库中尝试导入numpy
我一直在处理一个ipynb文件,在一个单元格里调用了来自我自定义库mymodule的自定义方法。该方法调用了np.polyfit(),该函数在mymodule的第一行被导入的 import numpy as np。
随后在我的ipynb单元格中出现错误,显示“NameError: name 'np' is not defined”(np是从mymodule调用的)。
仅作说明:I have installed numpy using pip on my venv and using right kernel…(仅作说明:我已经在我的虚拟环境中通过pip安装了numpy,并使用的是正确的内核)……
并且我的项目结构是这样的:
root:
- /venv
- /dataset
- mynotebook.ipynb
- /library/
- Model.py
- another_module.py
mynotebook.ipynb的单元格是这样的:
from library.Model import Model
results=[]
for c in combinations:
predict_b5=Model.detectOptimum()
而在 Model.py 中是这样的:
import numpy as np
class Model:
@staticmethod
def detectOptimum():
# .....
a,b=np.polyfit()
解决方案
这个错误通常是因为使用了在导入 numpy 之前就已经加载的模块的缓存版本。
Jupyter在你修改它们之后不会自动重新加载模块。
解决方法是重启内核并重新运行所有单元格:
Kernel - Restart Kernel - Run All
或者手动重新加载模块:
import importlib
import library.Model
importlib.reload(library.Model)
你的 Model.py 应该包含:
import numpy as np
class Model:
@staticmethod
def detectOptimum(x, y):
a, b = np.polyfit(x, y, 1)
return a, b
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。