[Zope3-dev] 'thread_local' AttributeError in zope.security.checker

Paul Carduner paulcarduner at gmail.com
Tue Aug 14 19:32:06 EDT 2007


Hello zope3-dev,

I came across an error I have not seen before.  Just for reference,
here is the last snippet from the traceback:

File "/home/pcardune/Work/ZContact/zcontact-lp/eggs/tmpgwuq6O/zope.security-3.4.0b4-py2.4-linux-i686.egg/zope/security/checker.py",
line 420, in ?
AttributeError: 'module' object has no attribute 'thread_local'

The interesting part to me is that it was so easy to fix.  Here is a
snippet of the relevant area of failing code from
zope/security/checker.py

# Get optimized versions
try:
    import zope.security._zope_security_checker
except ImportError:
    pass
else:
    from zope.security._zope_security_checker import _checkers, selectChecker
    from zope.security._zope_security_checker import NoProxy, Checker
    from zope.security._zope_security_checker import _defaultChecker
    from zope.security._zope_security_checker import _available_by_default
    zope.interface.classImplements(Checker, INameBasedChecker)

The very first import statement is throwing the error, but alas, it is
not an ImportError.  If I patch this code by catching the
AttributeError in the same way the ImportError is caught, then
everything works fine.  I tried looking into the c code, but after
years of python development, the c code just frightens me (a bit).
That said, I would really appreciate any pointers people might be able
to give me on what thread_local is for and why I (don't) need it.

I also just noticed that ~5 hours ago, Jim made a change to this file,
so I tried using the latest trunk revision but got the same error.

Thanks,
Paul


More information about the Zope3-dev mailing list