我正在尝试修改pywin演示中的exceladdin.py示例。
否则我可以修改它,但当我替换示例中给出的clsid时:
"{C5482ECA-F559-45A0-B078-B2036E6F011A}"
使用genguid.exe或pythoncom.CreateGuid()生成的那个,例如:
"{E44EF798-7FDF-4015-AED6-00234CBBBA77}"
com-addin停止工作。没有跟踪,没有错误只是excel com-objects列表中的以下文本(转换)“加载项未加载。加载com对象时运行时出错。”
我错过了生成clsid的步骤吗?
编辑:我认为我发现了问题... clsid是dll的ID。在python的情况下,clsid引用pythoncomloader27.dll。这是正确的吗? ...但我仍然无法加载正确的python文件。 clsid以某种方式链接到pythoncomloader和原始的pythonfile。如果我生成一个新的clsid,我必须将它链接到pythonloader?怎么样?
答案 0 :(得分:0)
好的,我认为我找到了答案......
python无法安装在“程序文件”文件夹中,除非您以root用户身份运行所有内容(管理员)。
注册com-service读取/写入<pythonInstallationDir>/Lib/win32com/gen-py
目录的python程序。 Word(或使用com服务的程序)也必须能够在那里写(?)。存在非人类可读的字典等。
将python安装到c:/ python27解决了我的问题。现在只有注册程序必须以root身份运行。 Word可以作为普通用户运行。我认为在我的情况下,我第二次没有提供足够的权限(第一次我正确地注册)并且它使用的是原始密钥,从而弄乱了字典。