如何从Python中创建.app包括图像文件

ing*_*sun 1 python wxpython py2app

我想从我的Python源代码创建一个.app文件.我的Python源代码是wxPython,有11个图像文件(.png,大小为32x32)

使.app成功,但它不包括我的图像文件,它只显示错误消息

no bitmap handler for types 50 defined.

细节...

Can't load image from file...

即使在同一目录中,它仍然显示此错误消息.

我正在使用py2app,python 2.7并且wxPython在MacOSX 10.6.7上

如何使用我的图像文件制作.app?

jdi*_*jdi 7

包括资源最简单的方法是将其指定为data_files您的setup.py

from setuptools import setup

APP = ['app.py']
DATA_FILES = [('', ['images'])]
OPTIONS = {'argv_emulation': True}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)
Run Code Online (Sandbox Code Playgroud)

<app.app>/Contents/Resources将是所有数据的当前目录和资源根.这会将images/项目目录放在资源根目录中.

如果您只想包含images/目录中的特定文件,可以告诉它如何映射:

DATA_FILES = [
    ('images', ['images/picture.jpg', 'images/picture2.png']),
    ('images/icons', ['images/icons/ico1.ico'])
]
Run Code Online (Sandbox Code Playgroud)

或者你可以得到更好的说"只包括我的图像目录中的所有jpegs":

from glob import glob
...
DATA_FILES = [
    ('images', glob('images/*.jpg')),
]
Run Code Online (Sandbox Code Playgroud)