python - 将自定义 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会话中导入模块,但没有任何变化。
似乎它只能在执行倾倒的同一位置内工作。
我正在为 Python shell 和 jupyter notebook 使用 Python 3.7.7 和相同的 conda 环境。
我检查了其他答案(例如如何完全在 Python 中保存/读取类),但没有运气。
我试过保存到 numpy 文件,但同样的故事。
我也试过用marshal
and倾倒json
,但都抱怨。
有人对如何解决这个问题有建议吗?谢谢
解决方案
推荐阅读
- c++ - GLM角度轴错了?
- php - 方法调用如何从 `Routes` 传递到 `RoutesCollection`?
- yii - 如何在 Yii 框架中更改错误屏幕上的布局?
- ios - 如何通过 Swift Package Manager 为 Swift 库分发 iOS Demo 应用程序?
- ios - iOS13 上的 Mapkit MapView VectorKit 崩溃
- javascript - 如何修复nodejs中的“无法读取未定义的属性“包含”?[脚本]
- angular - 将文件从客户端传递到 Firebase Cloud Function
- javascript - Angular 8 baseUrl 被消灭了
- xamarin - 在 Xamarin.Forms 中手动删除和添加元素到 App Shell 时如何暂停 UI / App Shell 更新?
- cytoscape.js - Cytoscape js - 每当单击节点时调用一个函数