2012-07-02 6 views
3

파이썬에서 COM 개체를로드하려고합니다. win32com.client.Dispatch ("Name.Of.Object")를 사용하여로드하고 COM 객체가 regsvr32에 등록되었으며 내 레지스트리에 HKLM/CLSID 및 HKLM/Wow6432Node/CLSID의 항목으로 나타납니다. . 나는 VBScript를가 잘 사용하여 열 수 있지만 파이썬의 win32com.client.Dispatch는() 나에게이 오류 준다 : 나는 64 비트 대 32에 문제가 있다는 것을 읽고등록 된 COM 개체가 파이썬의 win32com.client.dispatch()에 의해 인식되지 않습니다.

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) 

을; 필자는 32 비트 파이썬과 32 비트 win32com을 사용하는 64 비트 시스템에서이를 실행합니다. 어떤 제안? VBScript를이 코드가 잘 작동하는지

참고 :

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

감사

답변

5

파이썬 64 비트 및 win32com 64 비트를 설치하여이 문제를 해결했습니다.

관련 문제