我制作了一个改变excel文件颜色的脚本。为此我使用:
将win32com.client导入为win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
现在我想用py2exe创建一个exe文件。它给出了密钥错误< 000208D5-0000-0000-C000-000000000046>。我知道问题出在win32com.client上,但我无法解决。
有人有想法吗?
的Tx
答案 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
解决此问题