当我尝试从另一台机器(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,但这不会导致从此基类继承的其他类出现任何问题。
答案 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,因为格式不向后兼容。