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