En Fri, 09 Apr 2010 13:10:44 -0300, Alex Hall <mehg...@gmail.com> escribió:
c:\Python26>python.exe i:\arm\main.pyw Traceback (most recent call last): File "i:\arm\main.pyw", line 3, in <module> import arm, network, weather, dict File "i:\arm\arm.py", line 4, in <module> import config File "i:\arm\config.py", line 4, in <module> from main import exitProgram File "i:\arm\main.pyw", line 3, in <module> import arm, network, weather, dict File "i:\arm\network.py", line 4, in <module> arm.ready() AttributeError: 'module' object has no attribute 'ready' I realize it may be odd to import from main.pyw, but I do not think that could be causing the problem... could it?
Yes, it *is* a problem. Note the traceback sequence: main imports arm, arm imports config, config imports arm *again* (which is only partially initialized), arm imports network, and network tries to use arm.ready and fails.
Try to organize your modules hierarchically, so modules higher in the hierarchy may import (and use) other modules lower in the hierarchy, but not the other way around. Doing it that way helps also to make clear the intent of each module (and class). The 'main' script should be at the top of the hierarchy: 'main' may import anything, but no one may import 'main'. Put your high-level modules below it; they may use other low-level ones.
-- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list