Hi Mark, Thanks for the response. Here is what I am using to instantiate the server through python >>> from comtypes.client import CreateObject >>> cc= CreateObject("Compy.Connect") >>> cc.Status()
The com server also fails when being accessed from vbscript. I have verified that both machines have comtypes 0.6.2 loaded. Win32com works on the same machine that comtypes works >>> import win32com.client >>> wcc = win32com.client.Dispatch("Compy.Connect") >>> wcc.Status() When I run this on the machine that fails with comtypes I get: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<COMObject Compy.Connect>", line 2, in Status pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Python COM Server Internal Error', u"Unexpected Python Error: AttributeError: 'module' object has no attribute 'VARIANT'\n", None, 0, -2147467259), None) Do you have any suggestions as to what I can test? Thanks, Paul On Mon, Aug 6, 2012 at 11:41 AM, Mark Hammond <skippy.hamm...@gmail.com>wrote: > I don't quite understand this code. The server is using win32com (ie, not > comtypes), but the client code seems to be using comtypes rather than > win32com (but it's hard to tell as the client code is missing the imports > etc). But at face value it appears one of the machines might have an older > version of comtypes installed. > > Mark > > > On 5/08/2012 11:13 PM, Paul Hemans wrote: > >> Can someone tell me what is going wrong. The following works on one >> machine but not on another. >> >> Here is a COM server implemented in Python: >> >> |from win32com.server.**exceptionimport COMException >> >> >> import pythoncom >> >> import sys >> >> import os >> >> from string import Template >> >> import logging >> >> import logging.config >> >> >> class Connector: >> >> _reg_clsctx_= pythoncom.CLSCTX_LOCAL_SERVER >> >> _reg_clsid_= "{0CE25AEB-1AFA-4DA7-97BD-**F93CDBFB376C}" >> >> _reg_desc_= "Python Test COM Server" >> >> _reg_progid_= "Compy.Connect" >> >> _public_methods_= ['Process', 'Status'] >> >> _public_attrs_= [] >> >> _readonly_attrs_= [] >> >> >> def Process(self, what): >> >> pass >> >> >> def Status(self): >> >> return Template(""" >> >> Current Directory: $dir >> Installed: $script >> PythonPATH: $pyPath >> """).substitute(dir= os.getcwd(), >> >> script= os.path.abspath(__file__), >> >> pyPath= sys.path) >> >> >> if __name__== '__main__': >> >> >> import win32com.server.register >> >> win32com.server.register.**UseCommandLine(Connector) >> >> | >> >> It registers ok. When it is run it causes the following to occur on the >> production machine but NOT on the development box: >> >> |>>> cc= CreateObject("Compy.Connect") >> >> >> cc.Status() >>>>> >>>> >> Traceback (most recent calllast): >> >> File "<stdin>", line1, in <module> >> >> File "C:\Python26\lib\site-**packages\comtypes\client\**dynamic.py", >> line42, in _ >> >> _call__ >> return self._obj._comobj.Invoke(self.**_id, *args) >> >> File "C:\Python26\lib\site-**packages\comtypes\automation.**py", >> line717, in Invo >> >> >> ke >> raise COMError(hresult, text, details) >> >> _ctypes.COMError: (-2147352567, 'Exception occurred.', (u"Unexpected >> Python Erro >> >> r: AttributeError: 'module' object has no attribute 'VARIANT'\n", >> u'Python COM S >> >> erver Internal Error', None, 0L, -2147467259)) >> >> >>>>> >> | >> >> I have installed comtypes 0.6.2. Running Python 2.6.6 >> >> >> >> ______________________________**_________________ >> python-win32 mailing list >> python-win32@python.org >> http://mail.python.org/**mailman/listinfo/python-win32<http://mail.python.org/mailman/listinfo/python-win32> >> >> > ______________________________**_________________ > python-win32 mailing list > python-win32@python.org > http://mail.python.org/**mailman/listinfo/python-win32<http://mail.python.org/mailman/listinfo/python-win32> > -- Best regards, Paul Hemans paul_hem...@laberg.com.au LABERG Pty Ltd (02) 4889 9441 www.laberg.com.au
_______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32