Tool69 wrote: > Hi, > I've got the following hierarchy: > > mainprog/ > __init__.py > prog.py > utils/ > __init__.py > myutils.py > others/ > __init__.py > myothers.py > > Inside prog.py I need to have full access to myutils.py and > myothers.py; > Inside myutils.py, I need to access two classes from myothers.py (ie > myotherClass1 and myotherClass2); > Inside myothers.py, I need some functions of myutils.py (ie > myutils_func1 and myutils_func2); > > Do you have some hints please ?
1. Your directory/package hierarchy is far too complicated. Flatten it. 2. You have circular references: the others module will import from utils, but utils wants to import from others. This is prima facie evidence that your modules are not structured properly. Rule 1: Modules should contain /related/ classes and functions. Rule 2: A graph of what imports what should not have loops. Consider combining others and utils -- does that make sense? Another alternative: split out those "some functions of myutils.py (ie myutils_func1 and myutils_func2)" into a fourth module. This module might be the nucleus of a tool-kit of miscellaneous functions that you might import in /any/ app -- in that case, move it outside the current package. HTH, John -- http://mail.python.org/mailman/listinfo/python-list