繁体   English   中英

修复错误:无法从其他计算机加载泡菜文件

[英]Fix error: Cannot load pickle file from other machine

我有一个需要从另一个项目加载的pickle文件。 该项目的文件夹结构似乎有些不同。 即:模型类是在main中定义的,但是在我的项目中,它放置在“ model.fraud_model.py”中。 因此,当我尝试加载pickle文件时,出现以下异常:

'module' object has no attribute 'FraudModel'

我正在尝试从中修改泡菜文件:

ccopy_reg
_reconstructor
p0
(c__main__
FraudModel

对此:

ccopy_reg
_reconstructor
p0
(cmodel.fraud_model
FraudModel

而且有效。 但是此解决方案将更改泡菜文件。 我不要这个 所以我手工导入:

from model.fraud_model import FraudModel
import sys
sys.modules['model.fraud_model'] = FraudModel

但这似乎行不通。 请帮助我解决此问题。

谢谢

__main__.FraudModel期望能够找到__main__.FraudModel ,因此您只需要修改python环境,使其看起来像最初对对象进行酸洗时一样。

您应该可以通过将类添加到__main__模块来做到这一点,每个python程序都会拥有

from model.fraud_model import FraudModel
import sys
sys.modules['__main__'].FraudModel = FraudModel

然后您可以解开文件,它应该找到该类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM