繁体   English   中英

pyinstaller和win32com

[英]pyinstaller and win32com

因此,我对如何让pyinstaller生成使用win32com的应用程序感到困惑。 我有一个从IDLE或命令行运行的脚本,该脚本通过excel与excel进行了交互

xl = Dispatch('Excel.Application')

然后再执行其他一些非常基本的excel调用,然后关闭。 我已经看到建议将“ clsctx = pythoncom.CLSCTX_LOCAL_SERVER”包含为Dispatch的参数,但它不会改变任何内容。 每当我构建脚本时,都会出现类似于此的错误

Traceback (most recent call last):
File "<string>", line 7, in <module>
File "C:\Python27\trunk\iu.py", line 436, in importHook
mod = _self_doimport(nm, ctx, fqname)
File "C:\Python27\trunk\iu.py", line 521, in doimport
exec co in mod.__dict__
File "Myskript\build\pyi.win32\Myskript\outPYZ1.pyz/win32com.client", line 11,
in <module>
File "C:\Python27\trunk\iu.py", line 436, in importHook
mod = _self_doimport(nm, ctx, fqname)
File "C:\Python27\trunk\iu.py", line 521, in doimport
exec co in mod.__dict__
File "Myskript\build\pyi.win32\Myskript\outPYZ1.pyz/win32com.client.gencache",
line 662, in <module>
File "Myskript\build\pyi.win32\Myskript\outPYZ1.pyz/win32com.client.gencache",
line 58, in __init__
File "Myskript\build\pyi.win32\Myskript\outPYZ1.pyz/win32com.client.gencache",
line 649, in Rebuild
File "Myskript\build\pyi.win32\Myskript\outPYZ1.pyz/win32com.client.gencache",
line 65, in _SaveDicts
File "Myskript\build\pyi.win32\Myskript\outPYZ1.pyz/win32com.client.gencache",
line 141, in GetGeneratePath
IOError: [Errno 22] invalid mode ('w') or filename: 'C:\\Python27\\trunk\\Myskri
pt\\dist\\Myskript.exe?844863\\__init__.py'

这是从这个德语问题中复制过来的, 网址http://www.python-forum.de/viewtopic.php?f=1&t=25010,但我的错误基本上是相同的。 我也尝试执行该页面上给出的建议,但均无济于事。

我几乎对COM东西一无所知,只是希望让这个小型excel应用程序运行。

编辑:还尝试导入pythoncom并运行“ CoInitialize()”(基于这个人, 用py2exe编译后从Python调用MS Access模块​​功能失败 ,表明他的脚本可以在pyinstaller上正常运行),但也没有任何改变。 在这里真的很茫然,感谢任何建议。

我不确定您是否仍在使用py2exe,当我偶然进入此线程时,我将尝试尝试解决方法: 用py2exe编译后,从Python调用MS Access模块​​功能

“解决方案”使用的是Pyinstaller,根据您的脚本,默认情况下已实现了许多解决方法。 我在使用excel和word com对象的pywin32脚本中对其进行了尝试,并且它在没有任何调整的情况下也可以完美运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM