Example setup.py templates¶
Basic¶
The simplest possible setup.py
script to build a py2app application
looks like the following:
"""
py2app build script for MyApplication
Usage:
python setup.py py2app
"""
from setuptools import setup
setup(
app=["MyApplication.py"],
setup_requires=["py2app"],
)
The py2applet script can create setup.py
files of this variety
for you automatically:
$ py2applet --make-setup MyApplication.py
Cross-platform¶
Cross-platform applications can share a setup.py
script for both
py2exe and py2app. Here is an example
setup.py
that will build an application on Windows or Mac OS X:
"""
py2app/py2exe build script for MyApplication.
Will automatically ensure that all build prerequisites are available
via ez_setup
Usage (Mac OS X):
python setup.py py2app
Usage (Windows):
python setup.py py2exe
"""
import sys
from setuptools import setup
mainscript = 'MyApplication.py'
if sys.platform == 'darwin':
extra_options = dict(
setup_requires=['py2app'],
app=[mainscript],
# Cross-platform applications generally expect sys.argv to
# be used for opening files.
# Don't use this with GUI toolkits, the argv
# emulator causes problems and toolkits generally have
# hooks for responding to file-open events.
options=dict(py2app=dict(argv_emulation=True)),
)
elif sys.platform == 'win32':
extra_options = dict(
setup_requires=['py2exe'],
app=[mainscript],
)
else:
extra_options = dict(
# Normally unix-like platforms will use "setup.py install"
# and install the main script as such
scripts=[mainscript],
)
setup(
name="MyApplication",
**extra_options
)