質問
Pythonで中レベルのアプリケーションを作成しています。 すべてがうまく動作し、これをpy2exeで実行可能なWindowsにしようとしています。 実行可能ファイルは正常に作成されますが、実行しようとすると、次のエラーで失敗します。
File "zipextimporter.pyo", line 82, in load_module
File "ffhandler.pyo", line 33, in ?
File "zipextimporter.pyo", line 82, in load_module
File "pyAA\__init__.pyo", line 1, in ?
File "zipextimporter.pyo", line 82, in load_module
File "pyAA\AA.pyo", line 8, in ?
File "zipextimporter.pyo", line 82, in load_module
File "pyAA\pyAAc.pyo", line 5, in ?
File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading pyAA\_pyAAc.pyd
このアプリケーションではpyAAを使用しています。インターネットで検索しましたが、解決策が見つかりませんでした。 msvcp71.dllをwindows / system32にコピーしましたが、まだ問題があります。
以前(約7か月前)に解決しましたが、ハードドライブがクラッシュし、再作成しようとすると、今は解決できないようです。 :-(
誰かがここで私を助けてくれれば、私は大いに喜んでいるでしょう。
編集: バンドルファイルオプションなしでpy2exeを使用すると、完全に機能します。しかし、バンドルファイルオプションを使用すると、失敗します。
zipfileオプションなしで試してみました。実行ファイルとともにlibrary.zipが作成されます。再び失敗しました。 7-zipを使用してlibrary.zipを解凍しましたが、_pyAAc.pydがzipファイル内のpyAAフォルダーにあることがわかりました。したがって、memoryloadlibrary関数の問題のように見えます。
Windowsの解凍機能を使用して解凍しようとすると、失敗しました。 7-zipを使用して解凍する必要がありました。それは可能な手がかりですか?
解決
ビルドにいくつかのDLLがありません...
最初にハードドライブで _pyAAC.pyd
ファイルを検索します。ビルドに含まれている(出荷されている)ことを確認してください。
次に、.pydファイル(コンパイル済みのpy2exeバージョン)で 'dependency walker' を使用します。まだ欠落しているものを確認してください(.pydファイルの MemoryLoadLibrary
メッセージを引き起こしている他のDLL)。これらの依存関係も出荷されていることを確認してください...