I'm having a problem where the generated .exe from py2exe fails to find the xml.dom module.  This is all with ActivePython 2.4.1 Build 245 and py2exe-0.6.4-win32-py2.4.  I must be doing something very simple wrong, since this entire example is very simple!

In main.py, I have:

import OtherFile

if __name__ == "__main__":
    OtherFile.CallProcedure()   


In OtherFile.py in the same directory, I have:

import xml.dom, xml.dom.minidom

def CallProcedure():
    print "Made it!"

(yup, that's all of the Python code)

If you run main.py against python, obviously, it works fine:

C:\Documents and Settings\LHourvitz\PythonProjects\Py2ExeNoWorkee>python main.py

Made it!

So now I make this setup.py:


# setup.py
from distutils.core import setup
import py2exe

setup(
    windows=["main.py"]
)

and run py2exe:

C:\Documents and Settings\LHourvitz\PythonProjects\Py2ExeNoWorkee>python setup.py py2exe
<lots of output here -- no apparent error messages>

which all sounds good!  But when you run the final .exe:

C:\Documents and Settings\LHourvitz\PythonProjects\Py2ExeNoWorkee>dist\main.exe

it fails with the dialog box.  If you look in the dis\main.exe.log file, the error is:

Traceback (most recent call last):
  File "main.py", line 2, in ?
    from OtherFile import *
  File "OtherFile.pyc", line 3, in ?
   
ImportError: No module named dom

That's funny, it's saying it can't find xml.dom, part of the standard library.  I've actually checked inside the dist\library.zip file, and as you'd expect, the xml/dom/__init__.py files and all their relatives are all there. 

Any thoughts on why the py2exe-generated binary can't find that module in this simple case?

Leo