Objeto COM registrado no reconocido por win32com.client.dispatch() de python

Estoy tratando de cargar un objeto COM con Python. Estoy usando win32com.client.Dispatch("Name.Of.Object") para cargarlo, y el objeto COM se ha registrado con regsvr32 y aparece como una entrada en mi registro tanto en HKLM/CLSID como en HKLM/Wow6432Node/CLSID . Puedo abrirlo usando VBScript muy bien, pero win32com.client.Dispatch() de Python me da este error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221164, 'Class not registered', None, None)

He leído que hay problemas con 32 vs 64 bit; Estoy ejecutando esto en una máquina de 64 bits usando python de 32 bits y win32com de 32 bits. ¿Alguna sugerencia?

Tenga en cuenta que este código en VBScript funciona bien:

Set obj = WScript.CreateObject( "Name.Of.Object" )

Muchas Gracias

preguntado el 02 de julio de 12 a las 17:07

1 Respuestas

Se solucionó este problema instalando Python de 64 bits y win32com de 64 bits.

Respondido 03 Jul 12, 14:07

Curioso, para mí fue al revés. Pasar a Python de 32 bits lo arregló para mí. Estoy ejecutando Windows 10 de 64 bits. - RTHarston

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.