Problem with python 3.2 and circular imports
frank at chagford.com
Sun Feb 27 14:33:24 CET 2011
"Ben Finney" <ben+python at benfinney.id.au> wrote in message
news:87aahh6401.fsf at benfinney.id.au...
> "Frank Millman" <frank at chagford.com> writes:
>> Assume the following structure -
>> from pkg import mod1
>> import mod2
>> import mod1
> What are you expecting the result to be?
Simply that mod1 can refer to objects in mod2, and mod2 can refer to objects
> If it's about sharing objects between the modules, why not break the
> circular dependency: factor out the common code to a module that both
> the others import?
>> Any comments or suggestions will be appreciated.
> Special cases aren't special enough to break the rules. If you think you
> have a practical reason to do so, it would be best to make it explicit
> when asking for help about this.
I am trying to understand what 'the rule' is. Your advice above suggests
that you are one of those who recommend that circular imports are best
avoided altogether. In an ideal world I would agree. However, the fact is
that, no doubt due to a mental block I have, I do find myself in this
situation from time to time, and I have not seen anything in the
documentation or other literature that says it is absolutely wrong.
Therefore, while I do try to avoid circular imports where possible, I would
also like to know how to manage it in situations where I don't see a simple
>From everything I have read about how the import mechanism works, I don't
understand *why* the above construct fails. That is actually what I am
asking for help with.
More information about the Python-list