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”
大多数网站似乎都说这不应该发生?
发布于 2021-03-10 19:01:13
问题:
此问题是由于Windows注册表.中的COM互操作设置不正确造成的。
(不是python或其库)
我已经使用“comtype”和"win32api“以及多个MS版本对此进行了测试。
对COM对象的调用似乎存在问题,
关于一些MS Office版本。
解决方案1:
解决方案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”
COM接口:
"HKEY_CLASSES_ROOT\WOW6432Node\Interface{000C033A-0000-0000-C000-000000000046}\TypeLib\Version“
"HKEY_CLASSES_ROOT\WOW6432Node\Interface{000C0339-0000-0000-C000-000000000046}\TypeLib\Version“
https://stackoverflow.com/questions/66482132
复制相似问题