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 <skippy.hamm...@gmail.com
<mailto: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 <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
        python-win32@python.org <mailto: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 <mailto: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 <mailto:paul_hem...@laberg.com.au>
LABERG Pty Ltd
(02) 4889 9441
www.laberg.com.au <http://www.laberg.com.au/>


_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to