1

1 つのコードをビルドし、 py2exe を使用して .py から exe を作成しました。

今、私は同じために自己解凍を作成したいので、Iexpressを使用してそれを行いました。Iexpress から exe を作成できますが、作成した exe からアプリケーションを抽出しようとすると、次のエラーが発生します。

Traceback (most recent call last):
File "C.py", line 44, in <module>
File "A.pyc", line 4, in <module>
File "PyQt4\QtGui.pyc", line 12, in <module>
File "PyQt4\QtGui.pyc", line 10, in __load
ImportError: DLL load failed: The specified module could not be found.

エラーがすべて発生しているようです:

from PyQt4 import QtCore, QtGui

インターネットでこれを修正する方法をいくつか見ましたが、これを修正できませんでした。誰にもアイデアはありますか?

4

1 に答える 1

0

ここでこれを再現しようとしましたが、うまくいくようです。これが私がしたことです:

  1. hello-pyqt.pyこの質問を使用し てファイルを作成しました: How to implement a simple button in PyQt

  2. を作成しましたsetup.py:

    from distutils.core import setup
    import py2exe
    
    setup(console=['hello-pyqt.py'],
          options={'py2exe': {'bundle_files': 1,
                              'dll_excludes': ['w9xpopen.exe', 'MSVCP90.dll'],
                              'includes': ['sip']}}
         )
    

    dll_excludesincludesトリックは、それぞれ py2exe fails to generate a executable と this Py2exeAndPyQt page に関する回答からまし

  3. 実行setup.py:

    python setup.py py2exe
    
  4. IExpress を使用する前に出力をテストしました。

    dist\hello-pyqt.exe
    
  5. 通常の方法で IExpress にバンドルします。

    • hello-pyqt.exeと の両方を追加しましlibrary.zipた。
    • インストール コマンドを に設定しますhello-pyqt.exe
    • 長いファイル名のサポートを有効にしました。

あなたのプロセスを私が使用しているもの(上記)と比較して、何か役立つものがあるかどうかを確認してください. それができない場合は、 Process Monitorを使用して、読み込みに失敗している DLL とその場所を確認します。


my にバンドルされている DLLは次のlibrary.zipとおりです。これらのファイルが存在することを確認するために、 を確認することをお勧めします。QtCore4.dllQtGui4.dlllibrary.zip

于 2013-10-03T20:11:20.037 に答える