wtorek, 1 września 2009

Programowanie rozszerzen dla Pythona

Jedną z najbardziej popularnych paczek dla Pythona jest paczka zawierająca rozszerzenia binarne do Pythona 1.4.5 czyli PyModulePack. Do tworzenia rozszerzeń binarnych potrzeba ściągnięcia odpowiedniego SDK do właściwego systemu którego chce się tworzyć rozszerzenia Pythona. Dla E51 warto pobrać PythonForS60_1_4_5_SDK_3rdEdFP1.zip Po wypakowaniu kopiujemy foldery tam gdzie mamy zainstalowane S60 SDK 3rd Ed FP1. Następnie warto przestudiować jak wygląda tworzenie rozszerzeń binarnych na Pythona na podstawie artykułów z Nokia Forum: PyS60 creating extensions a także PyS60 extensions creation using Carbide. Istotne może być rozpoczecie pisanie własnych rozszerzeń na bazie artykułu Creating C Python extensions using Carbide.c++. Dla bardziej zaawansowanych polecam zapoznanie się z materiałem z wykładu Paula Wisnera ze szkolenia o tworzeniu rozszerzeń
Pomimo tego że Python jest dość elastycznym językiem programowania na komórki to trzeba pamiętać o tym że wersje binarne rozszerzeń nie są często kompatybilne ze sobą. W tej sytuacji warto dużą uwagę poświecić kodom źródłowym do tych rozszerzeń i w razie potrzeby kompilować je we własnym zakresie, szczególnie że będą 2 wersje silników Pythona: linia 1.4.x i linia 1.9.x / 2.0 ( w celu uniknięcia problemów nie powinno instalować się tych 2 silników na jednej komórce)
W teorii można by zrobić jeden duży projekt który by zebrał kody źródłowe rozszerzeń binarnych co umożliwiałoby szybką aktualizację pod kątem zmian i kompilacji pod różne wersje SDKów. Już istnieje taki projekt, PyS60 Community Edition ale on powstał w celu dostarczenia programistom możliwości tworzenia własnej dystrybucji silnika Pythona.
Dla Pythona S60 1.4.5 powstało wiele rozszerzeń co pokazują takie 2 wpisy:
PyS60 extensions i C++ Python Extensions

Warto zwrócić uwagę na strony gdzie są kody źródłowe dla rozszerzeń
Arkadius Wahlig: appuifw2
Mikko Ohtamaa, Simo Salminen, Jussi Toivola: uikludges
Tero Hasu: miso
Christophe Berger: elocation
Lee Chee Meng: applist
Cyke64: activeprofile, xprofile
Bea Lam: lightblue
Temu: pyExpat
Lefevre Damien: Pys60crypto, UItricks, Iapconnect, Appswitch, Akntextutils, Pys60usb, Tsocket, Dialog.

Brak komentarzy: