2012-10-30 19 views
1

我想从我的Python源代码创建一个.app文件。我的Python源是wxPython的,并有11个图像文件(巴纽,大小为32X32)如何从Python制作.app包含图像文件

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

no bitmap handler for types 50 defined.

详细...

Can't load image from file...

即使在同一个目录中,仍呈现此错误消息。

我MacOSX上10.6.7

使用py2apppython 2.7wxPython我怎样才能让我的图像文件。应用程序?

+2

你可以显示你的setup.py吗? – jdi

+0

同时显示您的.app包的一棵树。很可能.png文件不在那里,或者不在你期望的位置。 – abarnert

回答

6

包括资源最简单的方法是将其指定为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')), 
] 
+0

所有的png图片都直接位于项目根目录下的img'目录下吗?这不是一个递归搜索。 – jdi

相关问题