pythoncom - 'module' object has no attribute 'frozen'
Paul
paul.kemp at standardbank.com
Sat Oct 18 03:31:42 EDT 2003
Thanks Thomas - adding the sys.frozen = 1 line seemed to do the trick.
I'm a beginner here - would you mind explaining to me what the
'frozen' attribute means?
Thanks
Paul
Thomas Heller <theller at python.net> wrote in message news:<smlsm0y0.fsf at python.net>...
> paul.kemp at standardbank.com (Paul) writes:
>
> > Hi
> >
> > I'm trying to build a standalone COM exe server using Python 2.2 +
> > Mark Hammond's windows extensions + Py2Exe. I've built the example
> > linked on the Py2Exe homepage and get this error when running the exe:
> >
> > I:\Program Files\Python22\dist\comtest>comtest --register
> > Traceback (most recent call last):
> > File "<string>", line 37, in ?
> > File "win32com\server\register.pyc", line 468, in UseCommandLine
> > File "win32com\server\register.pyc", line 405, in RegisterClasses
> > File "win32com\server\register.pyc", line 188, in RegisterServer
> > AttributeError: 'module' object has no attribute 'frozen'
> >
> > Does anyone know what I'm doing wrong? thanks. btw, I have to use
> > Python 2.2.
>
> Mark Hammond changed his code to support McMillan installer.
> Looking at line 188 in win32com\server\register.py explains what happens:
>
> 187 if pythoncom.frozen:
> 188 assert sys.frozen, "pythoncom is frozen, but sys.frozen is not set - don't know the context!"
> 189 if sys.frozen == "dll":
>
> You need to make sure that sys.frozen is also set, but better not to
> 'dll'. I didn't try it, but the next step for you would be to change
> your code in the way mentioned below:
>
> > import sys
> > import pythoncom
> >
> > if hasattr(sys, 'importers'):
> > # we are running as py2exe-packed executable
> > pythoncom.frozen = 1
>
> sys.frozen = 1
>
> >
> > class HelloWorld:
> > _reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
> [...]
>
> The good news is that Mark and I are currently working on a brand new
> version of py2exe which will support 2.3 only, but which is much better
> integrated with the win32all stuff. In this version, you don't have to
> do anything special in your com server code, although you have to change
> your setup script a little bit.
>
> Thomas
More information about the Python-list
mailing list