py2exe和win32com与excel

时间:2013-09-05 08:52:47

标签: py2exe win32com

我制作了一个改变excel文件颜色的脚本。为此我使用:
    将win32com.client导入为win32
    excel = win32.gencache.EnsureDispatch('Excel.Application')

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

有人有想法吗?

的Tx

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

我刚刚解决了这个问题。 如果你想使用com服务的win32,首先你应该确保com服务已经运行,通过执行以下命令来检查:     " DCOMCNFG"在命令行中,如果excel的com服务正确启动,你应该看到" Microsoft Excel Application"在dcom服务列表中,如下所示:     the correct result should like this    如果" Microsoft Excel应用程序"不在列表中,您可以通过Microsoft Excel or Microsoft Word does not appear in DCOM Configuration snap-in

解决此问题