2012-07-02 198 views
3

我想加載一個COM對象與Python。我使用win32com.client.Dispatch(「Name.Of.Object」)加載它,並且COM對象已經註冊了regsvr32,並且在我的註冊表中顯示爲HKLM/CLSID和HKLM/Wow6432Node/CLSID中的一個條目。我可以使用VBScript就好打開它,但Python的win32com.client.Dispatch()給了我這個錯誤:註冊COM對象無法識別的python的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的問題比64位;我在一臺使用32位python和32位win32com的64位機器上運行它。有什麼建議麼?

注意,此代碼在VBScript中正常工作:

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

感謝

回答

5

通過安裝Python 64位和64 win32com位定點這個問題。