3

当尝试从另一台机器(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,但这不会对继承自该基类的其他类造成任何问题。

4

1 回答 1

3

检查你的DateTime鸡蛋版本。

DateTime2.12.7 添加了该功能_dt_reconstructor,您需要至少使用 2.12.x 系列中的该版本,或者使用 3.0.x 系列中的 3.0.1 或更高版本才能再次取消提取 DateTime 实例。

3.0.x 系列使用更高效的内部结构,从而显着节省内存。但是,3.0.x DateTime 代码可以读取 2.x 系列泡菜,但是一旦移至 3.x,您将无法返回 2.x,因为格式不向后兼容。

于 2012-11-16T11:01:42.220 回答