[ZODB-Dev] can't undo with FileStorage and ZEO
Andrew Sydelko
sydelko@ecn.purdue.edu
Wed, 19 Dec 2001 16:32:58 -0500
Jim Fulton wrote:
> Andrew Sydelko wrote:
> >
> > Jim Fulton wrote:
> > > The Zope App package (or just App.Undo) must be in the Python path of the storage server.
> >
> > Umm... I believe it is.
>
> Please double check that.
>
> > And it's not saying that
> > it can't find the module App.Undo,
> > it's complaining
> > about the "global Prefix" in the module App.Undo.
>
> The message says it couldn't get it. It could not get it because
> it couldn't find the module or because the Prefix class isn't in the
> module. The only the later is true is that you modified the module.
>
> Note that the Undo module imports other things. Maybe your missing one
> of those.
>
>
> >
> > Any way to check that it is in the python path of the
> > server?
>
> See if you can undo. ;) Sorry.
> How about modifying the server to print the PYTHONPATH
> environment variable.
with print sys.path in Zope/lib/python/ZEO/start.py I get this:
['Zope/lib/python', 'Zope/lib/python/ZEO', '/data/www/Zope.6/lib/python2.1', '/data/www/Zope.6/lib/python2.1/plat-sunos5', '/data/www/Zope.6/lib/python2.1/lib-tk', '/data/www/Zope.6/lib/python2.1/lib-dynload', '/data/www/Zope.6/lib/python2.1/site-packages']
So, yes, App.Undo is in my PYTHONPATH (it's the first entry above)
There is no initial PYTHONPATH set when starting the ZEO server.
In Zope/lib/python/App/Undo.py is the following:
201: Globals.default__class_init__(UndoSupport)
202:
203:
204: class Prefix:
205:
206: __no_side_effects__=1
207:
208: def __init__(self, path):
209: self.value = len(path), path
210:
211: def __cmp__(self, o):
212: l,v = self.value
213: rval = cmp(o[:l],v)
214: return rval
It seems like it might be complaining about this stuff but
it's all black voodoo magic to me.
--andy.