Reputation: 211
How do I specify the icon file when using py2app?
Just now I create the setup file:
py2applet --make-setup MyApplication.py
and then build the application bundle:
python setup.py py2app -A
where is it that I specify the icon file.. getting a little confused. Thanks for any help.
according to this link- http://packages.python.org/py2app/options.html, I should add it as an option.
Currently my setup.py file looks like this:
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['hello.py']
DATA_FILES = ['chalkboard.jpg']
OPTIONS = {'argv_emulation': True,
'iconfile': '/Users/grahamethomson/Documents/College/HND/oop/game/personal developoment/G/icon.icns'}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
Upvotes: 12
Views: 14214
Reputation: 11
These solutions didn't work for me on python3. The --iconfile switch was throwing errors about not finding the file. In fact the switch is not even needed. This worked for me.
py2applet --make-setup MyApplication.py myicon.icns
python3 setup.py py2app
Just put the icon in the same folder as the source code and this does what you want. Found in py2applet help.
Upvotes: 1
Reputation: 10087
Answering my own question.
To add an icon file simply add the iconfile option when creating setup.py:
py2applet --make-setup foo.py --iconfile images/icon.icns
Note: You must not leave the icon.icns
under the same folder as your main script foo.py
. It must be placed under a subfolder like images/
, otherwise you'd end up with DATA_FILE=['--iconfile']
in your setup.py
, which would fail because that's not a data file.
Upvotes: 9
Reputation:
In your setup.py, add iconfile
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['main.py']
DATA_FILES = []
OPTIONS = {
'iconfile':'icon.icns',
'plist': {'CFBundleShortVersionString':'0.1.0',}
}
setup(
app=APP,
name='MacApp',
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
Upvotes: 26