# Distribution
# py2app
To use the py2app framework you must install it first. Do this by opening terminal and entering the following command:
sudo easy_install -U py2app
You can also pip
install the packages as :
pip install py2app
Then create the setup file for your python script:
py2applet --make-setup MyApplication.py
Edit the settings of the setup file to your liking, this is the default:
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['test.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
To add an icon file (this file must have a .icns extension), or include images in your application as reference, change your options as shown:
DATA_FILES = ['myInsertedImage.jpg']
OPTIONS = {'argv_emulation': True, 'iconfile': 'myCoolIcon.icns'}
Finally enter this into terminal:
python setup.py py2app
The script should run and you will find your finished application in the dist folder.
Use the following options for more customization:
optimize (-O) optimization level: -O1 for "python -O", -O2 for
"python -OO", and -O0 to disable [default: -O0]
includes (-i) comma-separated list of modules to include
packages (-p) comma-separated list of packages to include
extension Bundle extension [default:.app for app, .plugin for
plugin]
extra-scripts comma-separated list of additional scripts to include
in an application or plugin.
# cx_Freeze
Install cx_Freeze from here (opens new window)
Unzip the folder and run these commands from that directory:
python setup.py build
sudo python setup.py install
Create a new directory for your python script and create a "setup.py" file in the same directory with the following content:
application_title = "My Application" # Use your own application name
main_python_file = "my_script.py" # Your python script
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == "win32":
base = "Win32GUI"
includes = ["atexit","re"]
setup(
name = application_title,
version = "0.1",
description = "Your Description",
options = {"build_exe" : {"includes" : includes }},
executables = [Executable(main_python_file, base = base)])
Now run your setup.py from terminal:
python setup.py bdist_mac
NOTE: On El Capitan this will need to be run as root with SIP mode disabled.