Discussion:
[Zope3-Users] zope.app.container importing problem
wsh
2009-09-14 16:33:14 UTC
Permalink
Hi, all

When I'm testing a package, some code is broken and I get the error
message "AttributeError: 'module' object has no attribute
'interfaces'".

After I checked the code I found that there are some code in the
from zope.app import container
When it try to reference the interfaces attribute of the container
module, but the attribute does not exist. I checked the container with
print dir(container) and get following:

['__builtins__', '__doc__', '__file__', '__name__', '__path__']


But if I add following line in the __init__.py this problem can be
solved.
from zope.app import container
import zope.app.container.constraints
print dir(container)
['__builtins__', '__doc__', '__file__', '__name__', '__path__',
'constraints', 'i18n', 'interfaces']



Can anyone explain this?



Wang Shuhao
Dan Korostelev
2009-09-14 17:05:07 UTC
Permalink
Post by wsh
Hi, all
When I'm testing a package, some code is broken and I get the error
message "AttributeError: 'module' object has no attribute
'interfaces'".
After I checked the code I found that there are some code in the
from zope.app import container
When it try to reference the interfaces attribute of the container
module, but the attribute does not exist. I checked the container with
['__builtins__', '__doc__', '__file__', '__name__', '__path__']
But if I add following line in the __init__.py this problem can be
solved.
from zope.app import container
import zope.app.container.constraints
print dir(container)
['__builtins__', '__doc__', '__file__', '__name__', '__path__',
'constraints', 'i18n', 'interfaces']
Can anyone explain this?
That's because zope.app.container.interfaces module is not imported, so
zope.app.container doesn't have "interfaces" attribute. But it seems to be
imported by "constraints" module, so it magically appears as "interfaces" in
zope.app.container.
--
WBR, Dan Korostelev
Loading...