Hi Michael,

What we have learned from creating the Zope Toolkit (formerly Zope 3), is that 
__init__.py files in namespace packages should be empty, and imports should be 
absolute. [1]

That said, there are ways to avoid import cycles. One is to very carefully 
craft your modules so they do not have to import from each other. Another is to 
not have imports at the module level, but move them into the functions where 
they are required. Third, large libraries like the Zope Toolkit usually have 
mechanisms to defer imports to some point after initial loading. You may want 
explore this direction as well. [2]

(Not trying to plug the ZTK here, it just happens to be a large, 
namespace-using library I know.)

Hope this helps,
Stefan

[1] http://docs.zope.org/zopetoolkit/
[2] http://pypi.python.org/pypi/zope.deferredimport

-- 
Stefan H. Holek
ste...@epy.co.at

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to