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

时间:2012-10-30 18:27:17

标签: python wxpython py2app

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

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

no bitmap handler for types 50 defined.

详细...

Can't load image from file...

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

我在MacOSX 10.6.7上使用py2apppython 2.7wxPython

如何使用我的图像文件创建.app?

1 个答案:

答案 0 :(得分:6)

包含资源的最简单方法是在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'],
)

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

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

DATA_FILES = [
    ('images', ['images/picture.jpg', 'images/picture2.png']),
    ('images/icons', ['images/icons/ico1.ico'])
]

或者你可以变得更加高兴并且说“只包括我图像目录中的所有jpeg”:

from glob import glob
...
DATA_FILES = [
    ('images', glob('images/*.jpg')),
]
相关问题