Zope导入:';模块';对象没有属性'_dt#U重建器';

Zope导入:';模块';对象没有属性'_dt#U重建器';,zope,python-import,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,

尝试从另一台机器(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,但这不会导致从该基类继承的其他类出现任何问题。

检查您的版本

DateTime
2.12.7添加了函数
\u dt\u recostructor
,您需要在2.12.x系列中至少使用该版本,或者在3.0.x系列中使用3.0.1或更新版本才能再次取消勾选DateTime实例


x系列使用了更高效的内部结构,从而显著节省了内存。但是,3.0.x日期时间代码可以读取2.x系列pickle,但一旦移动到3.x,就无法返回到2.x,因为格式不向后兼容。

谢谢!我已经发现这可能是两台服务器之间的区别,但我还没有检查出来。:)我的Mac电脑上有DateTime 2.12.6。安装2.12.7后,导入成功!再次感谢:)