I want to make a .app file from my Python source. My Python source is wxPython and has 11 image files (.png , size is 32x32)
Making the .app is a success, but it does not include my image files, it just shows the error message
no bitmap handler for types 50 defined.
Details...
Can't load image from file...
Even in the same directory it is still showing this error message.
I'm using py2app
, python 2.7
, and wxPython
on MacOSX 10.6.7
How can I make a .app with my image files?
The easiest way to include resources is to specify them as data_files
in your 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
will be the current directory and resource root for all data. This will place the images/
directory of your project within the resource root.
If you only wanted to include specific files from your images/
directory you can tell it how to map:
DATA_FILES = [
('images', ['images/picture.jpg', 'images/picture2.png']),
('images/icons', ['images/icons/ico1.ico'])
]
Or you can get fancier and say "only include all jpegs from my image dir":
from glob import glob
...
DATA_FILES = [
('images', glob('images/*.jpg')),
]