Python pod Mac OS X

Przegląd możliwości i dodatkowych bibliotek Pythona dostępnych pod Mac OS X

Mac OS X po instalacji systemu zawiera Pythona (w wersji 2.5 dla Leoparda), a po instalacji narzędzi programistycznych z pakietu Xcode zyskamy kompilator (GCC) i inne biblioteki potrzebne do np. kompilowania binarnych rozszerzeń Pythona. Większość bibliotek osób trzecich będzie działała pod OS X (Django, PIL, PyQt, PyGTK i inne). Dodatkowo Mac OS X udostępnia własne biblioteki Pythona umożliwiające wykorzystanie systemowych usług i aplikacji. Instalacja bibliotek wygląda praktycznie tak samo jak na systemach uniksowych - sudo python setup.py install, lub ./configure, make, sudo make install w zależności od biblioteki. Niektóre projekty dostarczają gotowe binarne pakiety w postaci obrazów DMG - wystarczy je zainstalować i gotowe. Alternatywnie jeżeli chcemy zarządzać dużą ilością pakietów Pythona - możemy użyć repozytoriów Fink lub MacPorts.

PyObjC to API Objective-C udostępnione dla Pythona. Za pomocą tej biblioteki będziemy mogli tworzyć aplikacje zintegrowane z usługami i aplikacjami Mac OS X (w którym Objective-C jest stosowane). Dodatkowo uzyskujemy dostęp do frameworków Cocoa i Carbon umożliwiających tworzenie aplikacji z graficznym interfejsem. Objective-C i częściowo PyObjC mogą wydawać się dziwne dla programistów przyzwyczajonych do pracy z PC, lecz ich poznanie to klucz do sukcesu w tworzeniu dobrych aplikacji pod Mac OS X.

Dokumentacja PyObjC dostępna jest na stronie projektu. Lepsze "wprowadzenia" dostępne są na innych stronach (podanych na końcu artykułu). Warto zwracać uwagę na datę publikacji, gdyż PyObjC zostało znacząco zaktualizowane i rozbudowane w Mac OS X 10.5 - Leopardzie i stare przykłady moga nie działać. Poniżej prosty przykład - wyświetlenie kolejnego utworu w kolejce w iTunes:

from Foundation import *
import os
dbFile = os.path.expanduser("~/Music/iTunes/iTunes Music Library.xml")
db = NSDictionary.dictionaryWithContentsOfFile_(dbFile)
track = db[u'Tracks'].itervalues().next()
print track.description()
Przykładowy wynik to:
{
    Album = "1492 Conquest Of Paradise";
    Artist = Vangelis;
    "Bit Rate" = 128;
    "Date Added" = 2008-12-27 01:05:19 +0100;
    "Date Modified" = 2007-04-05 18:49:38 +0200;
    "File Folder Count" = 4;
    Kind = "MPEG audio file";
    "Library Folder Count" = 1;
    Location = "file://localhost/Users/piotr/Music/iTunes/iTunes%20Music/Vangelis/1492%20Conquest%20Of%20Paradise/02%20Conquest%20Of%20Paradise.mp3";
    Name = "Conquest Of Paradise";
    "Persistent ID" = D9503446C77BFA90;
    "Sample Rate" = 44100;
    Size = 4610251;
    "Total Time" = 288104;
    "Track ID" = 45;
    "Track Number" = 2;
    "Track Type" = File;
}

Do budowania gotowych binarnych pakietów z aplikacji napisanych w Pythonie służy py2app. Obsługa tego narzędzie jest bardzo podobna do py2exe i sprowadza się do stworzenia odpowiedniego pliku setup.py dla naszej aplikacji, np:

#!/usr/bin/env python
"""
setup.py - skrypt budujacy aplikacje

Obsluga:
    % python setup.py py2app
"""
from distutils.core import setup
import py2app

setup(
    app=['MyApplication.py'],
)

W sieci

PyObjc Resources - przewodniki i przykłady
pythonmac.org - przykłady PyObjC
Intro To Using PyObjC
Using PyObjC for Developing Cocoa Applications with Python
An Epic Introduction to PyObjC and Cocoa
PyObjC Tutorial
awaretek.com - Ogólnie o Pythonie pod Makiem
blog comments powered by Disqus

Kategorie

Strony