3

サーバー(debian)から別のマシン(mac)にいくつかのオブジェクトをインポートしようとすると、次のエラーが発生します。

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のバージョンは、両方のマシンでまったく同じです(Zope2.13.19とPython2.7.3)。同じマシンでの再インポートは正常に機能します。

問題の原因となっているオブジェクトを追跡しました。これは、カスタムクラスの1つのインスタンスです。私の問題は、エラーを修正するためにどこを見ればよいかわからないことです。

このクラスの基本クラスの1つはDateTimeを使用しますが、この基本クラスから継承する他のクラスで問題が発生することはありません。

4

1 に答える 1

3

DateTimeのバージョンを確認してください。

DateTime2.12.7で関数が追加されまし_dt_reconstructorた。DateTimeインスタンスを再度選択できるようにするには、少なくとも2.12.xシリーズでそのリリースを使用するか、3.0.xシリーズでバージョン3.0.1以降を使用する必要があります。

3.0.xシリーズは、はるかに効率的な内部構造を使用しているため、メモリを大幅に節約できます。ただし、3.0.x DateTimeコードは2.xシリーズのピクルスを読み取ることができますが、3.xに移動すると、形式に下位互換性がないため、2.xに戻ることはできません。

于 2012-11-16T11:01:42.220 に答える