pagenoare's devblog

python ftw!

py2app

| written by pagenoare, on Oct 18, 2008 5:13:00 PM.

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).

Comments

Leave a Reply