2009-08-17 62 views
2

我正在爲python 2.5運行pywin32。Python/ADOX:'找不到指定的模塊。' (win32擴展)

我遵循python ADO的說明在http://www.ecp.cc/pyado.html

創建一個ADODB.Recordset對象工作正常。但是當我嘗試創建一個ADOX.Catalog對象時,出現錯誤:

>>> cat=win32com.client.Dispatch(r'ADOX.Catalog') 
Traceback (most recent call last): 
    File "<interactive input>", line 1, in <module> 
    File "C:\Python25\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch 
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx) 
    File "C:\Python25\lib\site-packages\win32com\client\dynamic.py", line 98, in _GetGoodDispatchAndUserName 
    return (_GetGoodDispatch(IDispatch, clsctx), userName) 
    File "C:\Python25\lib\site-packages\win32com\client\dynamic.py", line 78, in _GetGoodDispatch 
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch) 
com_error: (-2147024770, 'The specified module could not be found.', None, None) 

任何想法可能會丟失?

回答

4

解決方案:即使ADOX在COM瀏覽器中顯示爲可用庫,但它並未正確「註冊」。繼說明here,我執行的開始 - 以下>運行提示:

 
regsvr32 "C:\Program Files\Common Files\System\ado\msadox.dll" 

注意,這是WinXP的SP2的機器上。我猜這個註冊表不知何故變得腐敗了?無論如何,我是Windows編程的新手,所以我的解釋可能會失效,但也許修復會幫助某人。