繁体   English   中英

word = comtypes.client.CreateObject('Word.Application') 生成错误

[英]word = comtypes.client.CreateObject('Word.Application') generates error

Windows 10,Anaconda Spyder,Python 尝试将单词 '.doc' 转换为 ZBCD1B686176B5A401 第一步失败

导入comtypes.client

word = comtypes.client.CreateObject('Word.Application')


获取错误:

回溯(最近一次通话最后):

文件“”,第 1 行,在 word = comtypes.client.CreateObject('Word.Application')

文件“C:\ProgramData\Anaconda3\lib\site-packages\comtypes\client_init _.py ”,第 250 行,在 CreateObject return _manage(obj, clsid, interface=interface)

文件“C:\ProgramData\Anaconda3\lib\site-packages\comtypes\client_init _.py ”,第 188 行,在 _manage obj = GetBestInterface(obj)

文件“C:\ProgramData\Anaconda3\lib\site-packages\comtypes\client_init _.py ”,第 112 行,在 GetBestInterface interface = getattr(mod, itf_name)

AttributeError:模块“comtypes.gen.Word”没有属性“_Application”


大多数网站似乎 state 认为这不应该发生???

问题:

此问题是由 Windows 注册表中不正确的 COM 互操作设置引起的。
(不是 python 或其库)

我已经使用“comtypes”和“win32api”以及多个 MS Office 版本对此进行了测试。

对 COM 对象的调用似乎存在问题,
关于一些 MS Office 版本。


解决方案1:

  1. 单击开始菜单并打开控制面板

  2. 单击卸载程序(或在 Windows XP 中添加/删除程序)

  3. 找到 Microsoft Office 的条目并单击它。 单击它后,您应该会看到一个标有“更改”的按钮出现在它旁边或列表顶部(取决于您拥有的 Windows 版本)。 单击此更改按钮。

  4. 出现 Microsoft Office 设置后,选择“修复”选项并单击“下一步”让 Microsoft Office 自行修复。 此过程完成后,您可能需要重新启动计算机; 完成后,Microsoft Office 安装程序会告诉您是否需要执行此操作。


解决方案2:

安装经过 COM 调用测试且功能正常的 MS Office 版本。
以下是我测试过的 MS Office 版本的结果:

工作 MS Office 版本:2010、2019、365。
非工作 MS Office 版本:2007、2013。


有用的 COM 注册表路径检查:

微软字 x64:
"HKEY_CLASSES_ROOT\WOW6432Node\Interface{00020970-0000-0000-C000-000000000046}\TypeLib" MS Word x32:
“HKEY_CLASSES_ROOT \Interface{00020970-0000-0000-C000-000000000046}\TypeLib”
两者: “HKEY_CLASSES_ROOT\ WOW6432Node \TypeLib{00020970-0000-0000-C000-000000000046}”

  • 8.5 适用于 Office 2010
  • 8.6 适用于 Office 2013
  • 8.7 适用于 Office 2016

COM 接口:
“HKEY_CLASSES_ROOT\WOW6432Node\Interface{000C033A-0000-0000-C000-000000000046}\TypeLib\Version”

  • 2.5 如果适用于 Office 2010
  • 2.7 适用于 Office 2013
  • 2.8 适用于 Office 2016

“HKEY_CLASSES_ROOT\WOW6432Node\Interface{000C0339-0000-0000-C000-000000000046}\TypeLib\Version”

  • 2.5 如果适用于 Office 2010
  • 2.7 适用于 Office 2013
  • 2.8 适用于 Office 2016

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM