Python / ADOX:'无法找到指定的模块。' (win32扩展)

时间:2009-08-17 21:10:34

标签: python adodb pywin32 adox

我正在为python 2.5运行pywin32。

我正在按照http://www.ecp.cc/pyado.html给出的python ADO说明。

创建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)

我可能缺少什么想法?

1 个答案:

答案 0 :(得分:4)

解决方案:即使ADOX作为可用库在COM浏览器中显示,它也没有正确“注册”。按照说明here,我在Start-&gt; Run提示符下执行了以下操作:

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

请注意,这是在WinXP SP2计算机上。我猜注册表已经以某种方式腐败了?在任何情况下,我都是Windows编程的新手,所以我的解释可能会关闭,但修复程序可能对某人有帮助。