From: Larry B. <lar...@we...> - 2007-03-28 17:42:47
|
First sorry for the long post, but I wanted to document the problem I found in some detail. I ran into a rather "odd" problem. I have written a COM object and compiled in py2exe and it works perfectly. I then wrote unittest program to test all the COM object methods. My thought was that I could share the /dist directory between the two programs so as to not have to duplicate many of the files. This DOES NOT work for me and I've duplicated the problem on the sample interp.exe and the test_interp.py programs. Run cd c:\python25\lib\site-packages\py2exe\samples\pywin32\com_server python setup.py py2exe the result goes to ./dist and you can --register/--unregister properly Create the following testsetup.py script for test_interp.py from distutils.core import setup import py2exe setup(name="test_interp", console=[{"script":"test_interp.py"}], version="1.0.0", # Don't pull in all this MFC stuff used by the makepy UI (excludes) options = {"py2exe":{"dll_excludes": ["tcl84.dll", "tk84.dll"], "bundle_files": 3} } ) python testsetup.py py2exe cd dist Now try to register the COM object interp --register You get the following error message: See the logfile '...interp.exe.log' for details. The file contains the following error: Traceback (most recent call last): File "boot_com_servers.py", line 32, in <module> ImportError: No module named server.policy Now change testsetup.py options to bundle=1 and zipfile=None Now everything works. The downsize is that I'm distributing multiple copies of python25.dll, etc. that I'd rather not do. Regards, Larry Bates |