Python – opencv in Virtual Env per Raspberry Pi

Python - installazione opencv in Virtual Env per Raspberry Pi, installazione libreria OpenCv

Tags: python3 opencv virtualenv raspberry Pi

Si trovano molto spesso guide relative all’installazione di Opencv (Libreria per la gestione di video ed immagini in tempo reale – computer vision), più o meno semplici; ma se volessimo installare OpenCV in una VirtualEnv?Beh le cose si fanno un pochino più complicate… non da un punto di vista tecnico, ma di documentazione.

Nello scorso articolo abbiamo parlato di come creare e gestire un progetto in VirtualEnv e di come PIP gestisca i pacchetti.

Mi è capitato, sul Raspberri Pi di avere problemi con l’installazione di OpenCV tramite PIP e quindi vorrei lasciare la mia esperienza a qualcuno a cui possa servire.

Ma arriviamo subito al dunque… verifichiamo che non sia già installata una versione di opencv sulla nostra virtualenv .

(image) user@user ~/Virtual $ python3
>>> import cv2 as cv

Se genera errore, siamo certi che la libreria non è presente.

Ora dobbiamo installarla:

apt-get install python-opencv


Come seconda operazione dovremmo trovare i file cv2.so e cv2.py

Questi file, cambiano nome a seconda della distribuzione e della macchina… trovare i file cv2.so e cv2.py potrebbe risultare impossibile. Per facilitare l’operazione spostiamo all’interno della root di sistema e lanciamo il seguente comando:

find . -name"cv*"


Potrebbero apparire i seguenti file (o con nomi che richiamano al CV):

  • ./cv2.arm-linux-gnueabihf.so
  • ./cv.py

Perfetto abbiamo quasi terminato. Ora non ci resta che creare un collegamento virtuale tra i file e la virtualenv. Vediamo come procedere:

ln -s /usr/lib/python2.7/dist-packages/cv2.arm-linux-gnueabihf.so /home/pi/Virtual/image/lib/python2.7/site-packages/cv2.so
ln -s /usr/lib/python2.7/dist-packages/cv.py /home/pi/Virtual/image/lib/python2.7/site-packages/cv2.py


Rinominando i collegamenti in cv2.so e cv2.py ed inserendo il percorso all’interno della nostra VirtualEnv (in questo caso image).

Ora proviamo nuovamente ad eseguire l’importazione:

(image) user@user ~/Virtual $ python3
>>> import cv2 as cv


Ora dovrebbe essere tutto Ok!!!

Buon Lavoro.