问题描述
我想将自定义Python类的多个实例保存到文件中。
该类是Loess
,取自https://github.com/joaofig/pyloess,它执行局部回归。
以下是保存过程的MWE:
import pickle
import numpy as np
from Loess import Loess
xarr = np.linspace(0,4,100) * np.pi
yarr = 2*np.sin(xarr) + np.random.rand(len(xarr))
loess = Loess(xarr,yarr)
with open("localised_regression.pkl","wb") as output:
pickle.dump(loess,output)
现在是检索过程
import pickle
with open("localised_regression.pkl",'rb') as input_:
localised_regression = pickle.load(input_)
当我在Jupyter笔记本上执行此操作(在一个笔记本上运行第一个代码片段,然后在另一个笔记本上运行第二个代码片段)时,它运行完美。
从笔记本中转储Loess
的实例,并从终端或另一台计算机上检索它,这是行不通的。
我收到ModuleNotFoundError: No module named 'Loess'
错误消息
我什至尝试在尝试检索的python会话中导入模块,但没有任何变化。
似乎只能在执行转储的同一位置进行。
我在Python Shell和jupyter笔记本电脑上都使用了Python 3.7.7和相同的conda环境。
我检查了其他答案(例如how to save/read class wholly in Python),但没有运气。
我尝试保存到numpy文件,但情况相同。
我也尝试过使用marshal
和json
进行转储,但都抱怨。
有人对如何解决这个问题有建议吗?谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)