Supposing that I have a directory tree like so: a/ __init__.py b/ __init__.py c.py
and b.py has some method (let's call it d) within it. I can, from python, do: from a.b.c import d d() And, that works. Now, suppose I want to have a zipped module under a, called b.zip. Is there any way that I can accomplish the same thing, but using the zip file as the inner module? My directory layout is then a/ __init__.py b.zip And b is a zipfile laid out like b/ __init__.py c.py I tried populating a's __init__ with this: import zipimport import os here = os.path.join(os.getcwd(), __path__[0]) zips = [f for f in os.listdir(here) if f.endswith('.zip')] zips = [os.path.join(here, z) for z in zips] for z in zips: print z mod = os.path.split(z)[-1][:-4] print mod globals()[mod] = zipimport.zipimporter(z).load_module(mod) All the zip modules appear (I actually have a few zips, but that shouldn't be important), but their contents do not seem to be accessible in any way. I could probably put import statements in all the __init__.py files to import everything in the level below, but I am under the impression that relative imports are frowned upon, and it seems pretty bug-prone anyhow. Any pointers on how to accomplish zip modules being nested within normal ones? -- http://mail.python.org/mailman/listinfo/python-list