我想用dill替换MPI4PY的内置Pickle
- 序列化。根据{{3}},类_p_Pickle应该有2个名为dumps
和loads
的属性。但是,python说当我尝试以下
from mpi4py Import MPI
MPI._p_Pickle.dumps
- > AttributeError:类型对象'mpi4py.MPI._p_Pickle'没有属性'dumps'
dumps
和loads
去了哪里?
答案 0 :(得分:3)
在v2.0中,您可以通过
进行更改MPI.pickle.dumps = dill.dumps
MPI.pickle.loads = dill.loads
似乎文档仍然是2012年。
<强>更新强> 对于v3.0,请参见here,即:
MPI.pickle.__init__(dill.dumps, dill.loads)
答案 1 :(得分:0)
您可能正在使用旧版本。使用1.3.1
而不是1.2.x
。使用mpi4py.__version__
检查版本号。如果您使用的是1.3.1
或更新版本,则可以使用dumps
或loads
或其他一些自定义序列化程序的序列化来重载dill
和cloudpickle
。< / p>
>>> import mpi4py
>>> mpi4py.__version__
'1.3.1'