The problem occurs due to the attempt to use a cyclically imported module during module initialization. To clarify, using the "from module use *" requires that a module be compiled. Instead if you switch to using "import module" in both cases, it should work fine.

"requires that a module be compiled" is misleading at best. The module code is loaded, compiled and run either way. But from m import * copies everything that's in the module at that point in time while import m gives a reference to the module object - and hence makes later modifications visible.
–
delnanAug 29 '11 at 10:18