Package organization: where to put 'common' modules?

Kent Johnson kent at kentsjohnson.com
Sat Mar 4 07:49:43 EST 2006


fortepianissimo wrote:
> Say I have the following package organization in a system I'm
> developing:
> 
> A
>  |----B
>  |----C
>         |----D
> 
> I have a module, say 'foo', that both package D and B require. What is
> the best practice in terms of creating a 'common' package that hosts
> 'foo'? I want to be able to
> 
> - Testing modules in D right in D's directory and testing modules in B
> in B's directory;
> - If possible, minimize the modification to PYTHONPATH or sys.path
> while doing the above.

What I do is run always from the base directory (violates your first 
requirement). I make a util package to hold commonly used code. Then B 
and D both use
   from util import foo

In Python 2.5 you will be able to say (in D, for example)
   from ..util import foo

http://www.python.org/peps/pep-0328.html

Kent



More information about the Python-list mailing list