On 6/08/2012 3:58 PM, Paul Hemans wrote:
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)
You should be able to register the COM object with "--debug" on the command-line - the message printed on registration should say "(with debugging)".
Then, run win32traceutil and you should see the complete traceback from the server. Note that win32com.client.VARIANT was added quite recently to pywin32, so if the failing machine has an older version it will fail.
HTH, Mark
Do you have any suggestions as to what I can test? Thanks, Paul On Mon, Aug 6, 2012 at 11:41 AM, Mark Hammond <[email protected] <mailto:[email protected]>> 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 <tel:%28-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 <tel:2147467259>)) | I have installed comtypes 0.6.2. Running Python 2.6.6 _________________________________________________ python-win32 mailing list [email protected] <mailto:[email protected]> http://mail.python.org/__mailman/listinfo/python-win32 <http://mail.python.org/mailman/listinfo/python-win32> _________________________________________________ python-win32 mailing list [email protected] <mailto:[email protected]> http://mail.python.org/__mailman/listinfo/python-win32 <http://mail.python.org/mailman/listinfo/python-win32> -- Best regards, Paul Hemans [email protected] <mailto:[email protected]> LABERG Pty Ltd (02) 4889 9441 www.laberg.com.au <http://www.laberg.com.au/>
_______________________________________________ python-win32 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-win32
