繁体   English   中英

如何使用pickle从MDAnalysis模块转储Universe对象?

[英]How to use pickle to dump a universe object from MDAnalysis module?

我试图用泡菜转储MDAnalysis.universe对象,但是出现了类似mmessage的错误

Traceback (most recent call last):
  File "convert.py", line 9, in <module>
    blob = pickle.dumps(u)
  File "/usr/lib/python2.7/pickle.py", line 1374, in dumps
    Pickler(file, protocol).dump(obj)
  File "/usr/lib/python2.7/pickle.py", line 224, in dump
    self.save(obj)
  File "/usr/lib/python2.7/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/usr/lib/python2.7/pickle.py", line 419, in save_reduce
    save(state)
  File "/usr/lib/python2.7/pickle.py", line 286, in save
    f(self, obj) # Call unbound method with explicit self
  File "/usr/lib/python2.7/pickle.py", line 649, in save_dict
    self._batch_setitems(obj.iteritems())
  File "/usr/lib/python2.7/pickle.py", line 663, in _batch_setitems
    save(v)
  File "/usr/lib/python2.7/pickle.py", line 306, in save
    rv = reduce(self.proto)
  File "/usr/lib/python2.7/copy_reg.py", line 84, in _reduce_ex
    dict = getstate()
TypeError: 'AtomGroup' object is not callable

任何建议,将不胜感激!

MDAnalysis.Universe对象包含一些无法由标准机制序列化和腌制的对象,例如打开文件描述符。 Pickle协议中所述,将需要编写专用的__getstate__()__setstate__()方法,但是从当前的0.8.1版(2014年4月)开始,这些方法均未实现。

Manel在其对MDAnalysis第173期的评论中解释了特定的错误:Pickle搜索__getstate__()方法。 尽管尚未实现,但Universe负责管理自己的属性以动态生成“虚拟属性”,并将其解释为原子选择,并最终返回一个空的AtomGroup实例。 反过来,之所以这样称呼,是因为pickle认为这是__getstate__的本地实现。 但是,AtomGroup不可调用,并且会导致错误。

您可能已经注意到,通过询问MDAnalysis用户列表或提出问题,您可以得到更快的响应-在回答此类特定问题的开发人员列表中,Stackoverflow通常排在第二位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM