[python-win32] Python COM server throws 'module' object has no attribute 'VARIANT'

Paul Hemans paul_hemans at laberg.com.au
Mon Aug 6 08:28:33 CEST 2012


Hi Mark,
Installed pywin32-217.win32-py2.6.exe and then the problem was resolved.

Thanks again.

On Mon, Aug 6, 2012 at 3:58 PM, Paul Hemans <paul_hemans at laberg.com.au>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)
>
> 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
>
>


-- 
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/7b5bac84/attachment.html>


More information about the python-win32 mailing list