27
Nis
2024

py2app ile Python script’ini taşınabilir MAC uygulamasına dönüştürme

Python ile yazılan bir scripti MAC OS X üzerinde bağımsız çalıştırılabilir hale getirmenin en kolay yolu py2app kullanmaktadır. py2app, Windows için kullanılan py2exe’ye çok benzer. Ayrıca WxPython, Tkinter, pygame, PyQt ve PyObjC gibi GUI kütüphaneleriyle ve Cocoa uygulamaları ile uyumludur.

py2app kurulumu için terminalde aşağıdaki kod çalıştırılır.

$ pip3 install -U py2app

Örneğin, masaüstünde kayıtlı dosyam.py adlı script için çalıştırılabilir dosya üretilecek olsun.

Terminal ilk açıldığında varsayılan klasör root klasörüdür ve root klasörü ~ işareti ile ifade edilir. Klasör değiştirmek için cd komutu kullanılır. Masaüstü klasörüne gitmek cd desktop komutu yürütülür.

Sonraki aşamada setup.py dosyasının oluşturulması gerekiyor. Bunun için aşağıdaki komut yürütülür:

py2applet --make-setup dosyam.py

Bu işlem tamamlandığında masaüstünde setup.py adlı dosya oluşturulur.

setup.py dosyasının içeriği:

from setuptools import setup

APP = ['dosyam.py']
DATA_FILES = []
OPTIONS = {}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

Eğer python scripti çalışmak için çeşitli dosyalara ihtiyaç duyuyorsa bu dosyaların adı setup.py dosyasındaki DATA_FILES satırına eklenir.

DATA_FILES = ['veriler.txt', 'resim.jpg']

Artık Alias modunda çalıştırılabilir dosya üretilebilir. Alias modunda üretilen bir proje taşınabilir değildir, yalnızca kontrol amaçlıdır.

python3 setup.py py2app -A

Bu komut yürütüldüğünde çalışma klasöründe build ve dist adında iki klasör oluşturulur. Çalıştırılabilir dosya dist klasöründedir. Bu dosyanın sorunsuz çalıştığından emin olunduğunda, dosya taşınabilir modda yeniden oluşturulmalıdır. Bunun için önce build ve dist klasörlerinin silinmesi gerekir. Silme işlemi terminalde aşağıdaki kod yürütülerek yapılabilir:

rm -rf build dist

Son aşamada terminalde aşağıdaki kod yürütülerek oluşturulan dist klasörünün içinde taşınabilir çalıştırılabilir dosya hazırdır. (Bu işlem öncekilere göre biraz daha zaman alacaktır.)

python3 setup.py py2app