Python win32com.client.gencache.EnsureDispatch如果程序是用py2ex编译的,则失败

2024-06-17 15:21:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编译一个python3.3程序,它使用COM与msword交互。 程序的解释版本运行正常,并显示MS-word。在

word =win32com.client.gencache.EnsureDispatch(u"Word.Application")
doc = word.Documents.Add()
word.Visible = True

运行makepyformicrosoftword14.0对象库(8.5)得到了引用键00020905-0000-0000-C000-000000000046。在

现在,当用py2exe编译程序时,编译后的程序会死掉,说:

^{pr2}$

有趣的是,这个错误给我的键和makepy找到的键不同。在互联网上搜索时,我找到了一个可能的解决办法,那就是注册处搞砸了。但是这可以解释两种情况下的失败(即解释和编译),而我的问题仅限于编译版本。我还想知道是否有32/64位的问题,但据我所知,我的python工具链是32位的。我试过:

  • py2exe设置脚本,有或没有typelibs作为py2exe选项

  • 清理genpy(在temp dir和python站点包中
    win32com客户端目录)

我期待着你对这个问题的建议。在


Tags: 程序版本comclientdocapplicationdocumentswin32com