2016-07-25 9 views
0

他のサイトで私の問題に関連するいくつかの投稿を見ましたが、何も働いていません。短い話をするために、私のプログラムはwin32com.clientを使ってMicrosoft Wordにアクセスします。私はpy2exeを使用してスタンドアロンの実行可能ファイルを作成し、ユーザーがMS Wordを開くオプションを選択するたびにKeyErrorを取得します。以下は、コンパイラがエラーを主張するコードがされている。py2exeで変換されたスクリプトでwin32com.clientが正しく実行されない

# Call the MS Word app 
MS_Word = win32com.client.gencache.EnsureDispatch('Word.application') 

以下れる結果は、プログラムは、この特定の行を実行する場合:

Exception in Tkinter callback 
Traceback (most recent call last): 
File "Tkinter.pyc", line 1536, in __call__ 
File "PROTOTYPE_PCE.PY", line 46, in SCAN 
File "win32com\client\gencache.pyc", line 544, in EnsureDispatch 
File "win32com\client\CLSIDToClass.pyc", line 46, in GetClass 
KeyError: '{00020970-0000-0000-C000-000000000046}' 

私もTkinterのを使用していますが、そうではありません問題の原因プログラムからMS Wordを開くことは、私が追加した新機能です。スタンドアロンアプリケーションを作成すると失敗します。私もPyinstallerを試してみましたが、私のエラーラインは増えました。前もって感謝します!

+0

たぶん、名前空間のバグに役立ちます願っています。 'MS_Word = new_name.gencache.EnsureDispatch( 'Word.Application')' 'win32com.clientをnew_name'としてインポートしてください。あなたのCLSDは正しいですが、私のこと 'サブクラス名を解決できません。 – dsgdfg

+0

助けてくれてありがとう、残念ながらそれはうまくいきませんでした。私はその問題をも見分けることができません: '( –

答えて

0

OKAY!ですから何らかの理由でpy2exeが実行後に作成するlibrary.zipファイルは、win32com.clientのようなモジュールがプログラムにインポートすることを許しません。どうして?私は本当に私がこのようなことについてのノブです。とにかく、次のような解決策は非常にうまく機能します。これはsetup.pyスクリプトに含める必要があります。別の投稿から取られます。私は、これは誰か:)

setup( 
... 

zipfile="foo/bar.zip", 
options={"py2exe": {"skip_archive": True}}) 

Ignoring library.zip in py2exe

関連する問題