Windows 10, Anaconda Spyder, Python试图将word"。doc"转换为PDF第一步失败
进口comtypes.client
word = comtypes.client.CreateObject(' word . application ')
得到错误:
回溯(最近一次调用):
文件",第1行,在word = comtypes.client.CreateObject(' word . application ')
File "C:ProgramDataAnaconda3libsite-packagescomtypesclient_init_.py",第250行,在CreateObject返回_manage(obj, clsid, interface=interface)
File "C:ProgramDataAnaconda3libsite-packagescomtypesclient_init_.py",第188行,在_manageobj = GetBestInterface(obj)
File "C:ProgramDataAnaconda3libsite-packagescomtypesclient_init_.py",第112行,在GetBestInterfaceInterface = getattr(mod, itf_name)
AttributeError: module 'comtypes.gen。Word'没有属性'_Application'
大多数网站似乎都说这不应该发生??
非常感谢。
word = comtypes.client.CreateObject("Word.Application") ->run ok
excel = comtypes.client.CreateObject("Excel.Application") ->run ok
powerpoint = comtypes.client.CreateObject("Powerpoint.Application") ->run class err
我认为这是python设置错误,但通过更改ms office安装解决了这个问题。
问题:
这个问题是由Windows注册表中不正确的COM互操作设置引起的。
(不包括python及其库)
我用"comtypes"one_answers"win32api",以及多个MS Office版本。
对COM对象的调用似乎有问题,
关于某些MS Office版本。
解决方案1:
-
点击开始菜单,打开控制面板
-
点击卸载程序(或在Windows XP中添加/删除程序)
-
找到Microsoft Office的条目并单击它。在你点击它之后,你应该会看到一个标签为Change的按钮出现在它旁边,或者在列表的顶部(取决于你使用的是什么版本的Windows)。点击这个更改按钮。
-
一旦出现Microsoft Office安装程序,选择修复选项并单击下一步以使Microsoft Office自行修复。完成此过程后,您可能需要重新启动计算机;设置完成后,Microsoft Office安装程序会告诉您是否需要执行此操作。
解决方案2:
安装经过测试并可以使用COM调用的MS Office版本。
以下是我测试的MS Office版本的结果:
工作的MS Office版本:2010、2019、365.
MS Office版本:2007、2013
有用的COM注册表路径检查:
MS Word x64:
"HKEY_CLASSES_ROOT WOW6432Node 接口{00020970 - 0000 - 0000 - c000 - 00020970} TypeLib">MS Word x32:
HKEY_CLASSES_ROOT Interface{00020970-0000-0000-C000-000000000046}TypeLib">
Both: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 接口c033a {000 - 0000 - 0000 - c000 - 000000000046} TypeLib Version"
- 2.5 if for Office 2010
- 2.7适用于Office 2013
- 2.8适用于Office 2016
"HKEY_CLASSES_ROOT WOW6432Node 接口c0339 {000 - 0000 - 0000 - c000 - 000000000046} TypeLib Version"
- 2.5 if for Office 2010
- 2.7适用于Office 2013
- 2.8适用于Office 2016