[英]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.