[python-win32] Python COM server throws 'module' object has no attribute 'VARIANT'
Paul Hemans
paul_hemans at laberg.com.au
Mon Aug 6 07:58:28 CEST 2012
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.hammond at 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 at python.org
>> http://mail.python.org/**mailman/listinfo/python-win32<http://mail.python.org/mailman/listinfo/python-win32>
>>
>>
> ______________________________**_________________
> python-win32 mailing list
> python-win32 at python.org
> http://mail.python.org/**mailman/listinfo/python-win32<http://mail.python.org/mailman/listinfo/python-win32>
>
--
Best regards,
Paul Hemans
paul_hemans at laberg.com.au
LABERG Pty Ltd
(02) 4889 9441
www.laberg.com.au
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20120806/871ec358/attachment.html>
More information about the python-win32
mailing list