Carambola, andiamo avanti… Bottle!


Come ben sapete ultimamente sto giocherellando un po con Carambola, utilizzando python e pyserial per interfaccialo con Arduino, ma purtroppo non è tutto rose e fiori, anzi…

Come abbiamo visto la volta scorsa, su Carambola abbiamo dovuto installare il pacchetto python-mini perché il sistema non ha sufficiente spazio per poter ospitare la versione full, questo da un lato ci consente di poter usufruire del linguaggio ma non di tutte le librerie solitamente installate, e può quindi capitare di riscontrare errori del tipo

ImportError: No module named XXXXXXXX

Ma andiamo per ordine… per il progettino sto utilizzando una framework python molto interessante, Bottle un micro web-framework WSGI molto semplice e veloce che mi consentirà di comandare la “coppia” Carambola & Arduino tramite chiamate ad un server HTTP integrato nel framework! Bello no?!?!?!

Bottle

Altra importante caratteristica è che non necessita di librerie aggiuntive, se non quelle della libreria standard di python… e qui iniziano i problemi, si perché come dicevo prima, non tutte le librerie standard sono installate…😦

Quindi, armato di santa pazienza, ho iniziato a cercare tutte le librerie necessarie per poter eseguire almeno l’esempio base del framework

from bottle import route, run, template
@route('/hello/:name')
def index(name='World'):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='', port=8082)

Come avevamo visto la scorsa volta, dobbiamo prima eseguire il download dal sito di OpenWRT del pacchetto full

wget http://downloads.openwrt.org/snapshots/trunk/ramips/packages/python_2.7.3-1_ramips.ipk
mv python_2.7.3-1_ramips.ipk python_2.7.3-1_ramips.ipk.tar.gz
tar zxvf python_2.7.3-1_ramips.ipk.tar.gz
tar zxvf data.tar.gz

fatto questo, iniziamo a copiare le librerie necessarie per Bottle con i comandi che seguono, ovviamente dovete sostituire IP Carambola con l’indirizzo IP della vostra scheda Carambola

scp usr/lib/python2.7/lib-dynload/cPickle.so root@[IP Carambola]:/usr/lib/python2.7/lib-dynload
scp usr/lib/python2.7/lib-dynload/datetime.so root@[IP Carambola]:/usr/lib/python2.7/lib-dynload
scp usr/lib/python2.7/base64.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/BaseHTTPServer.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/cgi.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/Cookie.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/hmac.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/httplib.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/mimetools.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/mimetypes.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/quopri.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/rfc822.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/SocketServer.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/threading.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/urllib.py root@[IP Carambola]:/usr/lib/python2.7/
scp usr/lib/python2.7/urlparse.py root@[IP Carambola]:/usr/lib/python2.7/
scp -r usr/lib/python2.7/email root@[IP Carambola]:/usr/lib/python2.7/
scp -r usr/lib/python2.7/wsgiref root@[IP Carambola]:/usr/lib/python2.7/

E, una volta terminato il trasferimento, possiamo finalmente eseguire l’esempio riportato sul sito senza problemi!!!😉

One thought on “Carambola, andiamo avanti… Bottle!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...