Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS






 




Pagina principale per Raspberry



Informazioni di base




La basetta sperimentale (BDS)


Applicazioni



Librerie e programmi














 








 
















Raspberry PI 3/4/5:
la gestione delle librerie

Per chi come me, ha utilizzato per anni microcontroller come Arduino Nano e Uno, oltre che ESP8266, ESP32 ed ESP01, che usano tutti la IDE di Arduino e il linguaggio di programmazione C semplificato, il passaggio a Raspberry PI4 e alla programazione in Python , non è stata del tutto semplice.
Confesso senza vergogna di non essere certamente una cima in programmazione...

Uno degli scogli principali è stata la gestione delle librerie. Con Arduino IDE nella maggior parte dei casi è sufficiente aprire "Sketch/includi librerie" e digitare il nome di quella cercata. Solo in casi particolari è necessario fare una breve ricerca su Internet.

Con Raspberry OS invece mi sono trovato in difficoltà perché
nella descrizione dei progetti trovavo semplicemente l'informazione di scaricare la libreria necessaria e nell'eseguire il comando ricevevo quasi immancabilmente un messaggio di errore. Poi in Randomnerds (sito a cui sono molto grato!) ho trovato un progetto per DHT11 un sistema per creare un ambiente virtuale in cui installare la libreria necessaria.
Facendo alcune ulteriori ricerche, ho trovato la risposta: nei vecchi sistemi operativi Raspian era possibile installare liberamente librerie di terze parti in Python, mentre nelle versioni successive si è implementato un sistema di sicurezza per cui esse dovevano essere inserite in un ambiente protetto, per evitare problemi di stabilità o falle di sicurezza.

La spiegazione è condivisibile, ma crea qualche complessità e un uso maggiore dello spazio occupato su disco, dovendo creare più ambienti virtuali separati, o affidarsi a uno solo, con il rischio in caso di danni all'ambiente di dover ricreare un nuovo ambiente virtuale, reinstallare le varie librerie e trasferire i propri progetti.

Ma veniamo alla pratica, con le istruzioni per i principianti:

Installazione di una libreria (ed eventuali errori)
Il primo passo consiste nell'aggiornare il proprio Raspberry, aprendo
un terminale e lanciando il seguente comando:
L'esecuzione del comando richiederà più o meno tempo, in base al
numero di file che è necessario aggiornare.


sudo apt update && sudo apt get upgrade
Il secondo passaggio consiste nell'aggiornare o installare pip,
lanciando il seguente comando:


sudo pip install --upgrade pip                
Può essere opzionale eseguire anche questo comando, che installa
il pacchetto completo di Python3:


sudo pip install python3-ful                           
Poi, se tutto ha funzionato, sarà sufficiente lanciare il comando:

Alcuni tutorial consigliano di non usare "sudo" prima di lanciare il comando, perchè potrebbe creare qualche problema.               
               

sudo pip install "mia libreria", per esempio: sudo pip install RPI.BME280     
Però, nonostante aver aggiornato scrupolosamente il sistema, quasi sicuramente riceverete questo messaggio di errore:

errore_lib

Le vecchie versioni di Rabian permettevano di installare liberamentele librerie necessarie per i programmi che girano sotto Python (fino alla versione bullseye) a, mentre le nuove versioni del sistema operativo, (Raspberry O.S.), per prevenire problemi di sicurezza e stabilità, non permete più di installare direttamente librerie "sconosciute", ma obbliga a installarle in un ambiente virtuale. Naturalmente in uno stesso ambiente virtuale è possibile installare più librerie.

La creazione di un ambiente virtuale (e l'installazione della libreria)

Posizionarsi nella cartella in cui si è installato il programma e lanciare
 il seguente comando:

Dopo qualche secondo, lanciare il seguente comando per verificare che
l'ambiente virtuale sia stato creato:


python3 -m menv "mioambiente",
per esempio
python3 -m menv zero

ls -la

virtuale


L'ambiente virtuale denominato "zero" è stato creato e al suo interno è stata salvata la libreria richiesta.

Ora è necessario attivare l'ambiente virtuale, con il comando:



source "mioambiente"/bin/activate,
in questo caso:
source zero/bin/activate,

attivato


l'ambiente è stato attivato; ora si può installare la (le9 Libreria(e) necessaria(e)


s3

Questa , per esempio, è la libreria necessaria per utilizzare il display OLED SSD1306, che si lancia con il comando "pip3 install adafruit_circuitpython_ssd1306"
E pi si può continuare con tutte le librerie necessarie per lanciare il proprio programma.
Però spesso sono necessarie delle librerie standard di Python, come per esempio "RPi.GPIO", oppure "GPIOZERO".
Potremmo sempre installarle per ogli ambiente virtuale che creeremo, con il comando
"pip3 install Rpi.GPIO", oppure "pip3 install GPIOZERO".

Ma c'è un sistema piu razionale, che consente di usare queste librerie direttamente dalla cartella di Python, senza doverle installare tutte le volte.





Come utilizzare nel proprio ambiente virtuale le librerie standard

Digitando il comando "python -m venv --system-site-packages env" (al posto di "env" si può inserire il nome dell'ambiente virtuale preferito).
In questo caso sarà poi sufficiente installare nel proprio ambiente virtuale  esclusivamente le librerie specifiche per i vari sensori, guadagnando in semplicità e risparmio di occupazione di scheda SD o di disco.





A questo punto, si può lanciare il proprio programma.



Nota: per economia di spazio e di semplicità, conviene salvare tutti i programmi che richiedeno lo stesso ambiente virtuale nella stessa cartella, in questo caso "gpiozero".

stessa_dir



Lancio del programma



Per lanciare il programma, è sufficiente avviare un terminale, posizionarsi
sulla cartella in cui è salvato il programma e lanciare il comando:


python "mio programma",
per esempio:
python two_button.py







Le vecchie versioni del sistema operativo

Cliccando qui, potrai scaricare l'ultima versione del sistema operativo (Bullseye) per Raspberry che permette di installare direttamente le librerie per i propri programmi con Python. Le dimensioni del file sono di circa 1 Gb.
Ho inserito questa possibilità perché molti video su Youtube utilizzavano questo sistema, sicuramente più immediato me meno sicuro.
Per cui se desideri installare un vecchio sistema operativo, meno sicuro, lo fai a tuo rischio e pericolo.












Per contatti: etdiy@centroanahata.it