Zope导入:'module'对象没有属性'_dt_reconstructor'

时间:2012-11-16 00:52:14

标签: zope python-import

当我尝试从另一台机器(mac)上的服务器(debian)导入某些对象时,出现此错误:

Traceback (innermost last):
  Module ZPublisher.Publish, line 126, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 46, in call_object
  Module OFS.ObjectManager, line 620, in manage_importObject
  Module OFS.ObjectManager, line 638, in _importObjectFromFile
  Module ZODB.ExportImport, line 92, in importFile
  Module transaction._transaction, line 260, in savepoint
  Module transaction._transaction, line 257, in savepoint
  Module transaction._transaction, line 690, in __init__
  Module ZODB.Connection, line 1123, in savepoint
  Module ZODB.Connection, line 587, in _commit
  Module ZODB.ExportImport, line 176, in _importDuringCommit
AttributeError: 'module' object has no attribute '_dt_reconstructor'

两台机器上的Zope和Python版本完全相同(Zope 2.13.19和Python 2.7.3)。在同一台机器上重新导入工作正常。

我跟踪导致问题的对象,它是我的一个自定义类的实例。我的问题是我不知道在哪里修复错误。

此类的一个基类使用DateTime,但这不会导致从此基类继承的其他类出现任何问题。

1 个答案:

答案 0 :(得分:3)

检查DateTime egg版本。

DateTime 2.12.7添加了函数_dt_reconstructor,您需要在2.12.x系列中至少使用该版本,或者在3.0版本中使用3.0.1或更高版本。 x系列能够再次解开DateTime实例。

3.0.x系列使用更高效的内部结构,可显着节省内存。但是,3.0.x DateTime代码可以读取2.x系列泡菜,但是一旦你移动到3.x,你就不能回到2.x,因为格式不向后兼容。