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 )