python_logo_without_textsvgCome primo passo per lo sviluppo della nostra applicazione web, oggi andremo a impostare l’ambiente di sviluppo che conterrà una copia dell’interprete python e delle librerie che ci serviranno. Per una rapida illustrazione delle componenti che useremo, vedi il post precedente.

Darò per scontato che abbiamo già installato python e setuptools sulla nostra macchina di sviluppo, quindi procediamo all’installazione di virtualenv, che è in grado di copiare python e librerie in una cartella self-contained evitandoci di “sporcare” le cartelle di sistema.

$ easy_install virtualenv

Creiamo una cartella per il nostro progetto, ad esempio “myapp”, e qui dentro creiamo l’ambiente in “env”.

$ mkdir myapp
$ cd myapp
$ virtualenv env

Per utilizzarlo dobbiamo però prima attivarlo con:

$ source env/bin/activate

e per disattivarlo:

$ deactivate

Una volta dentro il nostro ambiente python utilizzerà le librerie presenti in “env” invece di quelle di sistema e con easy_install possiamo aggiungere eventuali librerie mancanti ed è proprio ciò che andremo a fare.

Il primo componente che ci serve è Pylons, ma siccome lo vogliamo utilizzare in combinazione con Elixir, ci conviene installare Shabti che offre un set di template per creare appunto applicazioni Pylons integrate con Elixir. Dobbiamo però installare la versione di sviluppo di Shabti perché al momento la versione stabile non supporta Pylons 1.0RC.

Installiamo mercurial (ne abbiamo parlato nel nostro post sui software di controllo di versione) e installiamo Shabti estraendo una copia dal repository di sviluppo.

$ hg clone http://bitbucket.org/gjhiggins/shabti
directory di destinazione: shabti
sto richiedendo tutte le modifiche
sto aggiungendo i changeset
sto aggiungendo i manifesti
sto aggiungendo le modifiche ai file
aggiunti 405 changeset con 6265 modifiche a 4558 file (+1 head)
updating to branch default
3492 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd shabti
$ python setup.py install
[...]
Finished processing dependencies for Shabti==0.4dev-XXXXXXXX
$ cd ..
$ rm -rf shabti

L’installazione si occuperà anche delle dipendenze, includendo quindi anche Pylons, Elixir e SQLAlchemy, oltre a tutte le altre librerie necessarie a Pylons. Di conseguenza non ci serve più nient’altro e possiamo creare la base della nostra applicazione col comando paster:

$ paster create --template shabti_auth myapp

creando così un’altra cartella “myapp” che contiene la struttura dei file e delle directory dell’applicazione pylons.

Come avrete notato nel comando precedente abbiamo specificato il template shabti_auth e così facendo l’applicazione appena creatà potrà beneficiare di alcune logiche e modelli preconfigurati per l’autenticazione degli utenti. Avremmo potuto usare il template “shabti” per ottenere un’applicazione senza alcun “extra” o uno degli altri template che potete trovare descritti sul sito di shabti.

Col prossimo appuntamento vedremo descritta in dettaglio la struttura del progetto appena creato.