将自定义python类的实例保存到文件

2024-05-09 01:46:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将自定义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会话中导入模块,在那里我尝试检索,但没有任何改变

似乎它只在进行倾倒的同一位置起作用。
我正在使用Python3.7.7和相同的conda环境,用于Pythonshell和jupyter笔记本

我检查了其他答案(如how to save/read class wholly in Python),但没有运气

我已尝试保存到numpy文件,但情况相同。
我也试过用marshaljson倾销,但都抱怨过

有人对如何解决这个问题有什么建议吗?多谢各位


Tags: 文件实例importnumpy过程asnp笔记本