Problems creating an app with the McMillan installer

Don Dwiggins dwig at advancedmp.net
Fri Aug 3 13:43:15 EDT 2001


I have a little wxPython script that I want to package as an .exe.  I've
tried both py2exe and McMillan's installer, and was defeated both times.

This message is about my experience with the McMillan installer, v. 4a2
(with ActiveState Python 2.0.0.203).  I've included quite a bit of the gory
details, hoping that something may point to the problem.

The app uses wxPython (2.3) and the win32com client functions, in particular
Dispatch and gencache.EnsureDispatch.  It works fine when interpreted
directly.

Following the documentation as best I could, I wound up with the following
config file after running Standalone.py:

----------------------------------------------------------------------
[MYCOLLECT]
type= COLLECT
name= dist_PartfinderMaint
bindepends= PartfinderMaint.py
misc= MYSTANDALONE
debug = 0
excludes = 

[MYSTANDALONE]
type= STANDALONE
name= PartfinderMaint.exe
script= e:\Unix\Python\Installer\support\setupcom, PartfinderMaint.py
zlib = APPZLIB
userunw = 1
support = 0
debug = 1

[APPZLIB]
name= PartfinderMaint.pyz
dependencies= PartfinderMaint.py
excludes= dospath, posixpath, macpath
----------------------------------------------------------------------

After building, if I run "PartfinderMaint.exe -v' in the same directory as
the .cfg file, I get just the following:
   Start
   Opening self
   Unpacking binaries
   Manipulating evironment
   Loading python
   d:\Sandbox\wxPython\python20.dll
   C:\TEMP\python20.dll

If I descend into the dist_PartfinderMaint directory and run the same thing,
I get a lot of output, including a traceback that ends with this:

File "e:\python20\win32com\client\gencache.py", line 131, in GetClassForCLSID
 mod = GetModuleForCLSID(clsid)
File "e:\python20\win32com\client\gencache.py", line 189, in GetModuleForCLSID
 makepy.GenerateChildFromTypeLibSpec(sub_mod, info)
File "e:\python20\win32com\client\makepy.py", line 294, in GenerateChildFromTypeLibSpec
 __import__("win32com.gen_py." + dir_name + "." + child)
File "e:\Unix\Python\Installer\support\imputil.py", line 127, in _import_hook
 return importer._finish_import(top_module, parts[1:], fromlist)
File "e:\Unix\Python\Installer\support\imputil.py", line 220, in _finish_import
 bottom = self._load_tail(top, parts)
File "e:\Unix\Python\Installer\support\imputil.py", line 313, in _load_tail
 raise ImportError, "No module named " + fqname
ImportError: No module named win32com.gen_py.{GUID}._Recordset

However, there is a subdirectory matching this:
   ls -R win32com/
   win32com:
   gen_py/

   win32com/gen_py:
   {GUID}/  __init__.pyc
   __init__.py				     dicts.dat

   win32com/gen_py/{GUID}:
   _Recordset.py  __init__.py  __init__.pyc

(I've replaced the actual GUID string by "{GUID}" for readability.)

After the "ImportError" come many "cleanup" messages, including:
   # cleanup[2] win32com.gen_py.{GUID}

Any thought on why the gen_py stuff gets built, then can't be found?

Thanks in advance,

-- 
Don Dwiggins                    "Solvitur Ambulando"
Advanced MP Technology
dwig at advancedmp.net





More information about the Python-list mailing list