我在其他网站上看过几个与我的问题相关的帖子,但没有任何效果。长话短说,我的程序importa win32com.client访问Microsoft Word。我使用py2exe创建一个独立的可执行文件,每次用户选择打开MS Word的选项时,我都会得到一个KeyError。下面是编译器声称错误的代码:
# Call the MS Word app
MS_Word = win32com.client.gencache.EnsureDispatch('Word.application')
以下是程序运行此特定行时的结果:
Exception in Tkinter callback
Traceback (most recent call last):
File "Tkinter.pyc", line 1536, in __call__
File "PROTOTYPE_PCE.PY", line 46, in SCAN
File "win32com\client\gencache.pyc", line 544, in EnsureDispatch
File "win32com\client\CLSIDToClass.pyc", line 46, in GetClass
KeyError: '{00020970-0000-0000-C000-000000000046}'
我也在使用Tkinter,但它不是问题的根源。从程序中打开MS Word是我添加的一项新功能,它只在我创建独立应用程序时失败。我也试过Pyinstaller,我的错误行只增加了。提前谢谢!
答案 0 :(得分:0)
OKAY!因此,出于某种原因py2exe运行后创建的library.zip文件不允许将win32com.client等模块导入程序。为什么?我真的不知道我是这个东西的菜鸟。无论如何,以下解决方案非常好用,好像我最初没有任何问题。这应该包含在setup.py脚本中。取自另一篇文章。我希望这有助于某人:)
setup(
...
zipfile="foo/bar.zip",
options={"py2exe": {"skip_archive": True}})