最近,我被要求让“我们的 C++ 库在云中工作”。基本上,该库是计算机密集型的(计算价格),所以它是有道理的。我已经构建了一个 SWIG 接口来制作一个 python 版本,并考虑将 MapReduce 与 MRJob 一起使用。我想序列化文件中的对象,并使用映射器,反序列化并计算价格。
例如:
class MRTest(MRJob):
def mapper(self,key,value):
obj = dill.loads(value)
yield (key, obj.price())
但是现在我走到了死胡同,因为 dill 似乎无法处理 SWIG 扩展:
PicklingError: Can't pickle <class 'SwigPyObject'>: it's not found as builtins.SwigPyObject
有没有办法让它正常工作?