468,321 Members | 1,848 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,321 developers. It's quick & easy.

pythoncom - 'module' object has no attribute 'frozen'

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.

Source code is:
import sys
import pythoncom

if hasattr(sys, 'importers'):
# we are running as py2exe-packed executable
pythoncom.frozen = 1

class HelloWorld:
_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
if hasattr(sys, 'importers'):
# In the py2exe-packed version, specify the module.class
# to use. In the python script version, python is able
# to figure it out itself.
_reg_class_spec_ = "__main__.HelloWorld"
_reg_clsid_ = "{B83DD222-7750-413D-A9AD-01B37021B24B}"
_reg_desc_ = "Python Test COM Server"
_reg_progid_ = "Python.TestServer"
_public_methods_ = ['Hello']
_public_attrs_ = ['softspace', 'noCalls']
_readonly_attrs_ = ['noCalls']
def __init__(self):
self.softspace = 1
self.noCalls = 0
# __init__()

def Hello(self, who):
self.noCalls = self.noCalls + 1
# insert "softspace" number of spaces
return "Hello" + " " * self.softspace + str(who)

if __name__ == '__main__':
if hasattr(sys, 'importers'):
# running as packed executable.
if '--register' in sys.argv[1:] or '--unregister'
in sys.argv[1:]:
# --register and --unregister work as usual
import win32com.server.register
win32com.server.register.UseCommandLine(HelloWorld )
else:
# start the server.
from win32com.server import localserver
localserver.main()
else:
import win32com.server.register
win32com.server.register.UseCommandLine(HelloWorld )
Jul 18 '05 #1
3 11367
pa*******@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
Jul 18 '05 #2
Thanks Thomas - adding the sys.frozen = 1 line seemed to do the trick.

I'm a bit of a beginner...would you mind explaining to me what the
'frozen' bit means?

Thanks
Paul

Thomas Heller <th*****@python.net> wrote in message news:<sm**********@python.net>...
pa*******@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

Jul 18 '05 #3
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 <th*****@python.net> wrote in message news:<sm**********@python.net>...
pa*******@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

Jul 18 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by John J. Lee | last post: by
reply views Thread by gloom | last post: by
reply views Thread by Calvin Spealman | last post: by
17 posts views Thread by Jacob Page | last post: by
reply views Thread by ChristianHahn | last post: by
1 post views Thread by John Walsh | last post: by
reply views Thread by Gabriel Genellina | last post: by
1 post views Thread by howard w | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.