そのため、pyinstaller で win32com を使用するアプリケーションをビルドする方法について混乱しています。IDLEまたはコマンドラインから問題なく実行されるスクリプトがあり、Excelとやり取りします
xl = Dispatch('Excel.Application')
その後、他の非常に基本的な Excel 呼び出しが続き、終了します。Dispatch の引数として "clsctx=pythoncom.CLSCTX_LOCAL_SERVER" を含めるようにというアドバイスを見てきましたが、何も変わりません。スクリプトをビルドするたびに、次のようなエラーが発生します
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からコピーされたものですが、私のエラーは基本的に同じです。そのページに記載されているアドバイスを実装しようとしましたが、役に立ちませんでした。
この小さな Excel アプリを実行することを望んでいるだけで、COM に関することはほとんど知りません。
編集:また、pythoncomをインポートして「CoInitialize()」を実行しようとしました(この男Call MS Access module function from Python after compiling with py2exe fails that his script runs fine with pyinstaller に基づいています)しかし、それは何も変更しませんでした。ここで本当に途方に暮れており、アドバイスをいただければ幸いです。