首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >word = comtypes.client.CreateObject('Word.Application')生成错误

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

Stack Overflow用户
提问于 2021-03-04 19:55:59
回答 1查看 1.1K关注 0票数 0

Windows 10,Anaconda Spyder,Python试图将单词“.doc”转换为PDF第一步失败

导入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返回_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接口= getattr(mod,itf_name)中

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

大多数网站似乎都说这不应该发生?

EN

回答 1

Stack Overflow用户

发布于 2021-03-10 19:01:13

问题:

此问题是由于Windows注册表.中的COM互操作设置不正确造成的。

(不是python或其库)

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

对COM对象的调用似乎存在问题,

关于一些MS Office版本。

解决方案1:

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

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

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

  1. 一旦出现Microsoft安装程序,请选择“修复”选项,然后单击“下一步”让MicrosoftOfficeRe修自身。一旦此过程完成,您可能需要重新启动计算机;Microsoft安装程序将告诉您是否需要在完成后重新启动计算机。

解决方案2:

安装MS版本,并通过COM调用进行测试和运行。

下面是我测试过的MS Office版本的结果:

Working MS Office版本: 2010,2019,365.

不工作的MS Office版本: 2007,2013。

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

MS Word 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“

\TypeLib{00020970-0000-0000-C000-000000000046}“ "HKEY_CLASSES_ROOT\ WOW6432Node”

  • 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66482132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档