1

我正在尝试修改 pywin 演示中的 exceladdin.py 示例。

否则我可以修改它,但是当我替换示例中给出的 clsid 时:

"{C5482ECA-F559-45A0-B078-B2036E6F011A}"

使用由 genguid.exe 或 pythoncom.CreateGuid() 生成的,例如:

"{E44EF798-7FDF-4015-AED6-00234CBBBA77}"

com 插件停止工作。没有跟踪,没有错误,只是 excel com-objects 列表中的以下文本(翻译)“未加载加载项。加载 com 对象时运行时出错。”

我错过了生成 clsid 的步骤吗?

编辑:我想我发现了问题...... clsid 是 dll 的 id。在 python 的情况下,clsid 指的是 pythoncomloader27.dll。这是正确的吗?...但我仍然无法加载正确的 python 文件。clsid 以某种方式链接到 pythoncomloader 和原始 pythonfile。如果我生成一个新的 clsid,我必须将它链接到 pythonloader?如何?

4

1 回答 1

0

好吧,我想我找到了答案……

除非您以 root(管理员)身份运行所有内容,否则无法将 python 安装在“程序文件”文件夹中。

<pythonInstallationDir>/Lib/win32com/gen-py注册 com-service 读取/写入目录的 python 程序。Word(或使用 com 服务的程序)也必须能够在那里写(?)。存在非人类可读的字典等。

将 python 安装到 c:/python27 解决了我的问题。现在只有注册程序必须以 root 身份运行。Word 可以作为普通用户运行。我认为在我的情况下,我第二次(我第一次正确注册它)没有给予足够的权限而弄乱了字典,并且它使用的是原始密钥。

于 2012-09-02T20:41:31.927 回答