py2exe 和 win32com 与 excel

问题描述 投票:0回答:3

我制作了一个可以更改 Excel 文件中颜色的脚本。我在这里使用:
将 win32com.client 导入为 win32
excel = win32.gencache.EnsureDispatch('Excel.Application')

现在我想用py2exe制作一个exe文件。它给出了一个关键错误<000208D5-0000-0000-C000-000000000046>。我知道问题出在 win32com.client,但我无法解决它。

有人有想法吗?

发送

py2exe win32com
3个回答
0
投票

免责声明 - 这主要是一个猜测:

尝试使用 win32.Dispatch 或 win32.DispatchEx。 EnsureDispatch 实际上创建了一个 .py 文件,其中包含一个表示所请求的 COM 对象的类并返回该文件,因此它可能与 py2exe 功能进行奇怪的交互。

我不知道 COM 如何在 python 包装器下工作,但我猜想 py2exe 的某些内容可能会锁定 gencache makepy 文件中的 COM 对象数据集,而不是允许它动态生成(如果在)运行时环境发生变化。


0
投票

我刚刚解决了这个问题。 如果你想使用win32的com服务,首先你应该确保com服务已经运行,通过执行以下命令来检查: 在命令行中输入“dcomcnfg”,如果 excel 的 com 服务已正确启动,您应该在 dcom 服务列表中看到“Microsoft Excel Application”,如下所示: the correct result should like this 如果“Microsoft Excel 应用程序”不在列表中,您可以通过 Microsoft Excel 或 Microsoft Word 未出现在 DCOM 配置管理单元中

来解决此问题

0
投票

我遇到了同样的问题,并在链接上找到了解决方案:https://www.py2exe.org/index.cgi/UsingEnsureDispatch

© www.soinside.com 2019 - 2024. All rights reserved.