gamecard

martedì 9 marzo 2010

Creazione Framework per lo sviluppo di plugin qGIS su ambienti Linux/OSX

Premessa
I plugin su qGIS possono essere sviluppati in C o in Python; in entrambi i casi sono necessarie le librerie Qt sulle quali si basa l’applicativo qGIS.
Vediamo come creare un ambiente basato su Python

Installazione dell’interprete Python
Python deve essere presente sulla macchina di sviluppo, benché l’installer di qGIS installi un interprete Python embedded è necessario avere tutto il pacchetto completo di quest’ultimo al fine di poter sviluppare le proprie applicazioni complete o plugin qGIS.
Python al momento lo troviamo in due versioni: 2.6.x e 3.1 il mio consiglio è quello di utilizzare la 2.6.x in quanto è l’unica ad avere al momento il supporto sia alle applicazioni 32bit che a quelle a 64bit e sono pienamente compatibili con il pacchetto PyQt (vedi più avanti).
Il pacchetto python lo possiamo trovare sul sito www.python.org. Ma considerate il fatto che sulle distribuzioni Linux e su OSX è già presente e non necessita quindi una sua ulteriore installazione.
Installazione di qGIS
qGIS è reperibile sotto www.qgis.org, è presente per tutte le piattaforme possibili, è un prodotto completamente open source ed è possibile anche ricompilarselo completamente.
Installare le librerie necessarie
Librerie QT
Le librerie QT sono librerie grafiche cross platform utilizzate da diversi progetti (uno dei più famosi è l’ambiente KDE di Linux). Tali librerie possono essere reperite sul sito http://qt.nokia.com e possono essere scaricate con licenza LGPL o Commerciale.
Occorre scaricare l’ultima versione disponibile per il nostro sistema (vi sono tutti i sistemi operativi), il mio personale consiglio è quello di scaricarsi la versione SDK.
Una volta scaricato il pacchetto installatelo seguendo le procedure guidate (al momento della stesura di questa guida è disponibile la versione 4.6.2)

Installare SIP e PyQT
A questo punto è necessario installare le librerie SIP e il wrapper per Python di QT (le PyQt).
SIP è disponibile su: http://www.riverbankcomputing.co.uk/software/sip/download
PyQt è disponibile su: http://www.riverbankcomputing.co.uk/software/pyqt/download
I pacchetti devono essere compilati sotto la propria macchina, questo significa che occorre avere tutto il necessario per la compilazione di pacchetti e applicazioni (su Linux occorrono i pacchetti Dev della propria distribuzione, sotto OSX occorre avere installato gli XCode).
Partiamo da SIP:
decomprimiamo i sorgenti (per convenzione mi riferirò alla posizione /usr/local/)
nella cartella /usr/local/sip/
entriamoci dentro e digitiamo
python configure.py arch XXXX
dove XXXX indica il tipo di architetture per le quali vogliamo compilare le librerie: i386 per architetture 32bit, x86_64 per architetture a 64bit. Se vogliamo entrambe possiamo utilizzare tutte e due le voci.
Completata la configurazione lanciamo
make
E successivamente
make install
Installazione PyQt:
Entriamo dentro la cartella /usr/local/PyQt/
Lanciamo
python configure.py –use-arch XXXX
Dove XXXX conterrà le architetture che vogliamo utilizzare (i valori possibili sono gli stessi di SIP).
A questo punto usiamo i nostri Make e Make install e completiamo così l’installazione
Tutte le librerie e il wrapper saranno installate nella directory delle libs di python (il percorso cambia a seconda della piattaforma utilizzata).

Note per possessori di Snow Leopard
Al momento attuale (SIP versione 4.10 e PyQt versione 4.7) le Qt library per OSX non supportano completamente le architetture a 64 bit, è necessario quindi forzare la compilazione di SIP e PyQt su architetture i386.

Dal momento però che Python per OSX di default lavora a 64 bit è necessario “forzarlo” a lavorare a 32bit.
Per fare ciò aggiungete nel vostro .profile il comando
export VERSIONER_PYTHON_32_BIT=yes
in questo modo si forzerà python a 32 bit.
E’ bene ricordarsi che se utilizzeremo Eclipse e PyDev per lo sviluppo delle nostre applicazioni dovremo aggiungere questa variabile di sistema anche all’interno delle preferenze di progetto di Eclipse
Ambienti di lavoro
Vi sono svariati ambienti di lavoro per Python ma quello che più mi sento di consigliare è Eclipse con l’estensione PyDev. Funziona veramente bene

Nessun commento: