2

PyQtベースのアプリケーションをWindowsの.exeファイルにバンドルするpy2exeの標準セットアップスクリプトがあります。

今日、PyQwtモジュールを使用する簡単なスクリプトを試しましたが、機能していないようです。py2exeは正常に実行されますが、作成された.exeを実行すると、次のものがログファイルにダンプされ、実行されません。

Traceback (most recent call last):
  File "qwt_test.pyw", line 5, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "PyQt4\Qwt5\__init__.pyo", line 32, in <module>
  File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading PyQt4\Qwt5\Qwt.pyd

ディレクトリを見るとPyQt4\Qwt5\、間違いなくそこにあります。build\bdist.win32\winexe\collect-2.5Qwt.pyd

このエラーに関して、オンラインで役立つものが見つからないようです。何が原因でしょうか?ありがとう。

4

2 に答える 2

4

py2exeは、Pythonアプリのexeファイルをまとめる唯一の方法ではなく、おそらく最善の方法ではありません。特に、pyqtをサポートしている場合はほとんどありません。お願いします、PyQtについて知っているPyInstallerをチェックしてください(そしてLinuxとMac、気になったら...)-「リリースされた」バージョンではなく、SVNヘッドチェックアウトを使用するようにしてください。今回はひどく時代遅れです(うまくいけばすぐになくなる問題です...)。

于 2009-05-31T07:30:49.307 に答える
1

いくつかのオプション:

  1. py2xe bundle_files options(3、2、1)で遊んでみてください(特に、すべてを1つの大きなライブラリzipに入れる場合、一部のdllはそれを好みません)。
  2. のコピーがmsvcp71.dllwindows\system32の下または実行可能ファイルのディレクトリに存在することを確認してください。
  3. dllを明示的に除外してみてください(dll_excludesオプションにQwt.pydを追加し、(ビルド後に)Qwt.pyd(および存在する場合は_Qwt.pyd)を実行可能パスにコピーします。
于 2009-06-05T17:16:14.133 に答える