unifying many packages under one name

James Stroud jstroud at mbi.ucla.edu
Fri Aug 24 01:55:52 EDT 2007


Eric S. Johansson wrote:
> I have a collection of packages and I want to put them under single 
> unifying name.  my goal is to reduce namespace pollution and make all 
> these packages accessible as 'import vvv.aaa'. In more detail, if I have 
> packages 'aaa' and 'bbb', what do I do to put those packages under 
> unifying name such as 'vvv'? the only way I can see to do it is to 
> create 'vvv' as a directory with its own __init__.py but I'm not sure 
> that were work right either.
> 
> 
> thanks.
> 

I don't see why it would be a problem:


py> import os
py> for afile in os.listdir('pypack'):
...   if not afile.endswith('pyc'):
...     print '# %s' % afile
...     print open(os.path.join('pypack', afile)).read().strip()
...     print '# end of file\n\n'
...
# __init__.py
from mod1 import x
from mod2 import y
# end of file


# mod1.py
x = 14
# end of file


# mod2.py
y = 42
# end of file


py> import pypack
py> dir(pypack)

['__builtins__',
  '__doc__',
  '__file__',
  '__name__',
  '__path__',
  'mod1',
  'mod2',
  'x',
  'y']
py> pypack.mod1
<module 'pypack.mod1' from 'pypack/mod1.py'>


James



More information about the Python-list mailing list