Keith Alperin wrote:
I'm returning to Zope after about a year away and am working on a project that i have pieced together over about 4 years. I recently deployed this project (a family history web site) under a zope 2.7.x install (it used to run on a 2.4.x install) and now I can't seem to update any of my objects. when i try to save them, I get a TypeError: Can't pickle objects in acquisition wrappers. I was never more than a dabbler, so I can't really claim to fully grok what acquisition wrappers are, other than being a construct that allows me to refer to an object in a request without knowing exactly where it is (ie is it a request parameter, a member of my object etc). Googling for this message yields very little information and grepping the source code yields one nondescript (at least to me) line in _Acquisition.c . Does anyone understand what this error means? Does anyone have any ideas on how to tell what "acquisition wrapper" i'm saving? Is there a way for me to workaround this?

In your traceback you should have a call like p.dump(state).
Go edit this file it's in and replace it with code like:
  try:
      p.dump(state)
  except TypeError, e:
      raise TypeError(str(e)+': '+repr(state))

This will give you more info about what fails to be pickled.
Any part of the error where you see a full path (like <File 0x12345 at /some/site/foo>) is with an acquisition wrapper. It shouldn't.

Or you can add a import pdb; pdb.set_trace() there if you know how to use PDB.

Florent

--
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]
_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to