2

.exeファイルを作成したい。GUIにwxPythonでPython 2.7.3を使用しています。Python 2.7用にインストールし、 http: //www.py2exe.org/index.cgi/Tutorialのチュートリアルに従ってファイルpy2exeを作成しようとしました.exe

作成した.exeファイルを実行しようとすると、次のエラーが発生します。

File "wx\_gdi.pyc",line823, in BitmapFromImage wx._core.PyAssertionError: 
C++ assertion "image.OK()" failed at ..\..\src\msw\bitmap.cpp(802) in 
wxBitmap::CreateFromImage(): invalid image

だから私は自分のコードを調べたところ、次の行が問題を引き起こしています:

self.bmpSun = wx.StaticBitmap(self, wx.ID_ANY, wx.BitmapFromImage(wx.Image('images/sun.gif', wx.BITMAP_TYPE_ANY)), pos = (0,0))

ソース フォルダーを参照してmain.py自分でファイルを実行すると、アプリは正常に動作します。これまでのところ、オンラインでヘルプが見つかりませんでした。誰でもこの問題を解決できますか/信頼できる代替案を提案できpy2exeますか? ありがとうございました。

4

1 に答える 1

2

Imagesエラーが発生した行は、フォルダー内の画像を探しています。.exeこれは、によって作成されたファイルへの相対パスpy2exeです。そのため、そのフォルダーが exe に対して正しい位置に存在し、使用するイメージが格納されていることを確認する必要があります。これには 2 つの方法があります。exe が存在する場所にフォルダーをコピーするかdata_files.exe. これは私のセットアップ スクリプトの 1 つの関連部分で、data_filesタプルのリストとdata_filesキーワード arg の使用を後で示しています。

data_files = [('Images', glob('Images/*.*')),
                            ]

includes = ['win32com.decimal_23', 'datetime']

excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses',  'pywin.debugger',
            'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
            'Tkconstants', 'Tkinter', 'unittest']
packages = []

dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll',
                'tk84.dll','MSVCP90.dll']

setup(
    data_files = data_files,
    options = {"py2exe": {"compressed": 2,
                          "optimize": 2,
                          "includes": includes,
                          "excludes": excludes,
                          "packages": packages,
                          "dll_excludes": dll_excludes,
                          "bundle_files": 1,
                          "dist_dir": "dist",
                          "xref": False,
                          "skip_archive": False,
                          "ascii": False,
                          "custom_boot_script": '',
                         }
              },
    zipfile = None,
    windows = [filename]
    )
于 2012-10-10T22:26:19.663 に答える