[ZODB-Dev] Cannot import name utils + class.__dict__ not accessible

Chris McDonough chrism at plope.com
Wed Jun 17 13:46:31 EDT 2009


I'm not sure of the exact cause of this error, but I'll note that one your 
deployment looks like it's using the "slow" (non-C) versions of the stuff in 
zope.interface, which usually means that somehow the zope.interface C extensions 
couldn't be compiled.  You might try checking this from a debug prompt:

It should look like this:

 >>> from zope.interface import implementedBy
 >>> implementedBy
<built-in function implementedBy>

You're not using the C extensions if it looks something like this instead:

 >>> from zope.interface import implementedBy
 >>> implementedBy
<function implementedBy at 0x51cf70>

I'd start by getting that fixed if possible.

- C

On 6/15/09 9:33 AM, Jose Benito Gonzalez Lopez wrote:
> Dear ZODB developers,
>
> We are experiencing some errors and we'd appreciate any idea or advise.
>
> Our web application (http://indicodemo.cern.ch) uses ZODB:
> - ZODB 3.4 in production
> - and ZODB 3.8.0 for testing.
> Both versions work smoothly.
>
> Now, we are moving to ZODB3 3.8.1 (in a fresh installation of the web
> appl.). The installation was fine
> but while navigating through the website, we get the following errors
> randomly:
>
> <error1>
> ...
> [..]   File "/usr/lib64/python2.4/site-packages/ZEO/ClientStorage.py",
> line 34, in ?\n    from ZEO.cache import ClientCache
> [..]   File "/usr/lib64/python2.4/site-packages/ZEO/cache.py", line 36,
> in ?\n    import ZODB.fsIndex
> [..]   File "/usr/lib64/python2.4/site-packages/ZODB/__init__.py", line
> 31, in ?\n    from DB import DB
> [..]   File "/usr/lib64/python2.4/site-packages/ZODB/DB.py", line 27, in
> ?\n    from ZODB.Connection import Connection
> [..]   File "/usr/lib64/python2.4/site-packages/ZODB/Connection.py",
> line 33, in ?\n    from ZODB.blob import Blob, rename_or_copy_blob
> [..]   File "/usr/lib64/python2.4/site-packages/ZODB/blob.py", line 34,
> in ?\n    from ZODB import utils
> [..]   ImportError: cannot import name utils
> </error1>
>
> <error2>
>
> Traceback (most recent call last):
>    File "/usr/lib64/python2.4/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
>      default=default_handler, arg=req, silent=hlist.silent)
>    File "/usr/lib64/python2.4/site-packages/mod_python/importer.py", line 1229, in _process_target
>      result = _execute_target(config, req, object, arg)
>    File "/usr/lib64/python2.4/site-packages/mod_python/importer.py", line 1128, in _execute_target
>      result = object(arg)
>    File "/usr/lib64/python2.4/site-packages/mod_python/publisher.py", line 204, in handler
>      module = page_cache[req]
>    File "/usr/lib64/python2.4/site-packages/mod_python/importer.py", line 1059, in __getitem__
>      return import_module(req.filename)
>    File "/usr/lib64/python2.4/site-packages/mod_python/importer.py", line 296, in import_module
>      log, import_path)
>    File "/usr/lib64/python2.4/site-packages/mod_python/importer.py", line 680, in import_module
>      execfile(file, module.__dict__)
>    File "/opt/indico/www/htdocs/signIn.py", line 22, in ?
>      from MaKaC.common.general import *
>    File "/usr/lib/python2.4/site-packages/MaKaC/common/__init__.py", line 22, in ?
>      from db import DBMgr
>    File "/usr/lib/python2.4/site-packages/MaKaC/common/db.py", line 30, in ?
>      from ZEO.ClientStorage import ClientStorage
>    File "/usr/lib64/python2.4/site-packages/ZEO/ClientStorage.py", line 34, in ?
>      from ZEO.cache import ClientCache
>    File "/usr/lib64/python2.4/site-packages/ZEO/cache.py", line 36, in ?
>      import ZODB.fsIndex
>    File "/usr/lib64/python2.4/site-packages/ZODB/__init__.py", line 31, in ?
>      from DB import DB
>    File "/usr/lib64/python2.4/site-packages/ZODB/DB.py", line 27, in ?
>      from ZODB.Connection import Connection
>    File "/usr/lib64/python2.4/site-packages/ZODB/Connection.py", line 33, in ?
>      from ZODB.blob import Blob, rename_or_copy_blob
>    File "/usr/lib64/python2.4/site-packages/ZODB/blob.py", line 36, in ?
>      import transaction
>    File "/usr/lib64/python2.4/site-packages/transaction/__init__.py", line 19, in ?
>      from transaction._transaction import Transaction
>    File "/usr/lib64/python2.4/site-packages/transaction/_transaction.py", line 620, in ?
>      class Savepoint:
>    File "/usr/lib64/python2.4/site-packages/zope/interface/advice.py", line 132, in advise
>      return callback(newClass)
>    File "/usr/lib64/python2.4/site-packages/zope/interface/declarations.py", line 484, in _implements_advice
>      classImplements(cls, *interfaces)
>    File "/usr/lib64/python2.4/site-packages/zope/interface/declarations.py", line 460, in classImplements
>      spec = implementedBy(cls)
>    File "/usr/lib64/python2.4/site-packages/zope/interface/declarations.py", line 300, in implementedByFallback
>      spec = cls.__dict__.get('__implemented__')
>
> RuntimeError: class.__dict__ not accessible in restricted mode
> </error2>
>
>
> Have you ever experience a problem like this? Is there any easy solution?
> We use python 2.4.3, apache 2.2.3, mod_python 3.3.1.
>
> Thank you so much in advance.
>
> Best regards,
> Jose
>



More information about the ZODB-Dev mailing list