【发布时间】:2017-10-01 08:04:55
【问题描述】:
我有一个用cython 编写的类或扩展类型,如下所示:
cdef class Self_Organized_Map:
cdef
def __cinit__(self,np.ndarray data,.....):
....
我使用distutils从这个cython文件(它的名字是som.pyx)创建了一个python模块,然后我将它导入python并用它来创建和训练一个模型,但是当我想要的时候使用pickle 保存我的模型,它给了我这个错误:
TypeError: can't pickle som.Self_Organized_Map objects
pickle 或我的代码有什么问题?泡菜不能保存扩展对象吗?
【问题讨论】:
-
有相当多的文档和以前的问题看起来不像你读过:例如docs.python.org/3/library/…([扩展类型默认不定义
__dict__}( cython.readthedocs.io/en/latest/src/reference/…))。之前的几个相关问题:stackoverflow.com/questions/12646436/pickle-cython-classstackoverflow.com/questions/36301322/… -
另外,你的标题提到了指针,但你的代码没有显示任何指针。也许澄清一下?
-
@DavidW 谢谢我更正了!
标签: python python-3.x cython pickle cythonize