[Zope] External Method cPickle Import Module Error
Dieter Maurer
dieter at handshake.de
Sun Dec 31 16:32:36 EST 2006
Sean W. Duffy wrote at 2006-12-27 19:44 -0600:
> ...
>I have upgraded from Zope 2.8.5 to 2.9.4. This currently works in the
>2.8.5 instance but not in the 2.9.4.
>
>I have a Module Progress in /usr/lib/python2.4/site-packages/Progress
>containing 4 files:
>
>__init__.py __init__.pyc Progress.py Progress.pyc
>
>Both instances have calls to neuro.py which includes:
>
>from Progress import Progress
>
>The External Method in both instances looks good. I even updated the
>External Method by clicking the Save Changes button without
>error in the new 294 instance.
>
>But when I access it from the dtml-method it goes boom:
>
>Traceback (innermost last):
> ....
> Module ZPublisher.Publish, line 115, in publish
> Module ZPublisher.mapply, line 88, in mapply
> Module ZPublisher.Publish, line 41, in call_object
> Module Products.ExternalMethod.ExternalMethod, line 134, in manage_edit
> Module Products.ExternalMethod.ExternalMethod, line 141, in getFunction
> Module App.Extensions, line 148, in getObject
> - __traceback_info__: ('/var/lib/hip_294_251/Extensions/neuro.py',
>'neuro')
> Module /var/lib/hip_294_251/Extensions/neuro.py, line 299, in ?
> Module /var/lib/hip_294_251/Extensions/neuro.py, line 9, in GetProgress
>ImportError: No module named Progress
>
>But Progress is in: /usr/lib/python2.4/site-packages/Progress !
>
>If I just start python at the command line I can import Progress w/o
>error. I'm guessing that it has something to do with how
>cPickle is sandboxed by Zope, but I just don't get it.
It does not look like a Zope (version) issue:
The "import" in an "External Method" is a pure Python "import" -- without
any restrictions or additional magic.
Therefore, if "sys.path" is still correct inside the "External Method",
all modules/packages reachable by "sys.path" should be importable.
I would check "sys.path".
--
Dieter
More information about the Zope
mailing list