1

我想从我的 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?

4

1 回答 1

10

包含资源的最简单方法是将它们指定data_filessetup.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')),
]
于 2012-10-30T19:21:05.707 回答