How do I set up module imports so that each module can access the objects of all the others?
I have a medium size Python application with modules files in various subdirectories.  I have created modules that append these subdirectories to sys.path and imports a group of modules, using import thisModule as tm.  Module objects are referred to with that qualification.  I then import that module into the others with from moduleImports import *.  The code is sloppy right now and has several of these things, which are often duplicative.
First, the application is failing because some module references aren't assigned.  This same code does run when unit tested.
Second, I'm worried that I'm causing a problem with recursive module imports.  Importing moduleImports imports thisModule, which imports moduleImports . . . .
What is the right way to do this?
Few pointers

You may have already split
functionality in various module. If
correctly done most of the time you
will not fall into circular import
problems (e.g.  if module a depends
on b and b on a you can make a third
module c to remove such circular
dependency). As last resort, in a
import b but in b import a at the
point where a is needed e.g. inside
function.
Once functionality is properly in
modules group them in packages under
a subdir and add a __init__.py file
to it so that you can import the
package. Keep such pakages in a
folder e.g. lib and then either add
to sys.path or set PYTHONPATH env
variable
from module import * may not
be good idea. Instead, import whatever
is needed. It may be fully qualified. It
doesn't hurt to be verbose. e.g.
from pakageA.moduleB import
CoolClass.
Properly importing modules in Python