Python调用win32com.client.Dispatch('Word.Application')报错

我现在使用Python进行office文件操作,但是在调用win32com.client.Dispatch模块时报错,代码如下:

import win32com
from win32com.client import Dispatch,constants
w = win32com.client.Dispatch('Word.Application')

错误信息如下所示:
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:Python27libsite-packageswin32comclient__init__.py", line 95, in Dispatch

dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)

File "C:Python27libsite-packageswin32comclientdynamic.py", line 114, in _GetGoodDispatchAndUserName

return (_GetGoodDispatch(IDispatch, clsctx), userName)

File "C:Python27libsite-packageswin32comclientdynamic.py", line 91, in _GetGoodDispatch

IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)

com_error: (-2147221164, 'xc3xbbxd3xd0xd7xa2xb2xe1xc0xe0', None, None)

我有点看不太懂,也没查到太多有用信息,各位有没有遇到类似问题的,请赐教。

阅读 18.6k
1 个回答

问题没有找到原因,但是用其他方法解决了。
这个问题发生的环境是Python 2.7 32位,pywin32 32位,win7 64位, office 2007。
我在另一台机器上换了另外的环境,Python 2.7 64位,pywin32-220.win-amd64-py2.7 64位,win7 64位,office 2007(新装)。
第二种环境测试通过。
原因分析:1.第一种环境是在办公电脑上,装了很多软件,杀毒软件,dlp加密软件,不知道会不会对office程序有什么影响,有可能导致win32com调用出错。
2.系统环境必须与软件配置一致,即同为64位,或者同为32位。因为32位Python模块调用64位office程序可能是有问题的。
以上是我的想法,欢迎大家补充。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题