I have a code tree that looks like this:

A/B/C/mainfunction.py
A/common/

normally, I run from directory A
python B/C/mainfunction.py
and the includes all work right.  All the imports find the right paths and everything is happy.

mainfunction.py refers to other .py files in the same folder (via import statements) and to files in /common

import bar
from common import foo
...

Its a slightly complicated app using twisted and a xml library suds and so on.  I can get *something* to build.  But usually get an error like
"no module named common" when I try to run.  Indeed looking at the output of build process I see a warning:

The following modules appear to be missing
['Crypto.Util', '_scproxy', '_zope_interface_coptimizations', 'common', 'ntlm', 'pkg_resources', 'resource']
(so my problems aren't limited to this, but I probably just haven't reached them yet)

I've tried adding things to the both packages and includes options and not had any luck.

currently my setup.py looks like:

from distutils.core import setup
import py2exe

setup(console=[{'script':'B\C\mainfunction.py'}],
      options={"py2exe":{"bundle_files": 1,
                         "compressed":1,
                         "ascii":1,
                         "includes":["suds","twisted.web.resource"]
                         }})

And this seems to do mostly what I want.  (in that the build finishes).  (I run "python B\C\setup.py py2exe" from directory A to get it to build (into its finished, but broken, exe)

But i'm not sure how to get the /common code to get included properly.

Anyone have any ideas?