django中pickle.load报错Can't get attribute 'Recommender' on module '__main__' from 'manage.py'

报错情况

单独的一个py文件执行 pickle的dump和load过程都不会报错(也有可能有的人不在django中,单纯的只load也会报错,但在django中引用的时候就会报错。

1 不在django中,单独的执行load会报错的情况

如果单独执行出现AttributeError: Can’t get attribute ‘Recommender’ on main’ from ‘E:/running_pycharm/django2/del.py’>,以下为load代码和报错情况,出现原因是,内存中找不到Recommender类,这是由于,load之前必须要将Recommender的类加载到内存中,可以from mydata import Recommender,也可以将整个Recommender类复制到文件中
load代码
django中pickle.load报错Can't get attribute 'Recommender' on module '__main__' from 'manage.py'_第1张图片
更改如下图即可
django中pickle.load报错Can't get attribute 'Recommender' on module '__main__' from 'manage.py'_第2张图片

2 在django中,出现Can’t get attribute ‘Recommender’ on main’ from ‘manage.py’>

django中pickle.load报错Can't get attribute 'Recommender' on module '__main__' from 'manage.py'_第3张图片
提示在manage.py中找不到Recommender,此时load的那个文件已经有了Recommender类但是还是找不到,解决办法:可以在manage.py中导入Recommender类。

你可能感兴趣的:(Python)