py2app
Dość długo szukałem jak zamienić plik pythona na aplikację makową, w końcu udało się – dla tych, którzy tego potrzebują oraz siebie (na pewno za jakiś czas zapomnę jak to się robi) napiszę krótkie how-to.
Instalacja
Jeśli posiadamy easy_install w systemie:
sudo easy_install py2app
Jeśli nie:
wget http://peak.telecommunity.com/dist/ez_setup.py sudo python ez_setup.py
Oraz czynność z pierwszego puntku.
setup.py
Stwórzmy plik setup.py w katalogu z aplikacją, oraz wypełnijmy go poniższą zawartością.
from distutils.core import setup
import py2app
setup (
options = dict(
py2app = dict(
packages = "wx", # pakiety które mają być dołączone
site_packages = True,
resources = [],
plist = dict(
CFBundleName = "nazwa", # nazwa
CFBundleShortVersionString = "0.1", # wersja programu
CFBundleIconFile = "ikona", # nazwa pliku z ikoną (.icns)
CFBundleExecutable = "nazwa",
CFBundleIdentifier = "com.example.identyfikator",
),
),
),
data_files = [], # lista "data" plików (obrazki, konfiguracja itp)
app = [ "skrypt.py" ] # nazwa pliku "głównego"
)
Tworzymy .app!
python setup.py py2app
Czynność ta stworzy nam plik nazwa.app (który na dobrą sprawę nie nadaje się do wrzucenia na net – u mnie ten plik mial ~80mb :)) z skrypt.py (który ma GUI w wxpython) oraz ustawi ikonę na ikona.icns (uwaga! koniecznie musi być w formacie .icns – nie .ico, o tym jak to skonwertować można znaleźć na góglu).