web-dev-qa-db-fra.com

Est-il possible d'exécuter opencv (liaison python) à partir d'un virtualenv?

Je voudrais garder tout contenu dans le virtualenv. Est-ce possible avec OpenCV? La construction à partir de zéro me convient, dois-je simplement configurer virtualenv, puis utiliser des indicateurs de compilation spéciaux pour indiquer où installer?

31
xamox

J'ai trouvé que la solution consistait à copier cv2.so et cv.py dans le répertoire exécutant virtualenv, puis à installer pip numpy. Pour ce faire sur Ubuntu 12.04, j'ai utilisé.

virtualenv virtopencv
cd virtopencv
cp /usr/local/lib/python2.7/dist-packages/cv* ./lib/python2.7/site-packages/
./bin/pip install numpy
source bin/activate
python
import cv
40
xamox

De opencv guide d'installation :

Par défaut, le système de génération OpenCV choisit la version de Python la plus récente qu'il peut trouver ou vous pouvez le forcer à utiliser une version spécifique à l'aide de la variable PYTHON_EXECUTABLE lorsque vous appelez cmake.)

Je viens de l'installer sur mon ubuntu 11.10, sur env virtuel --avec-no-site-package, en suivant les instructions du lien ci-dessus . Vous devez créer un opencv complet. et son wrapper python ensemble.

EDIT 1:

  1. Créez un répertoire temporaire, ce que nous désignons par, dans lequel vous voulez placer les fichiers Makefiles générés, les fichiers de projet ainsi que les fichiers objet et les fichiers binaires de sortie.

    cd ~/opencv
    mkdir release
    cd release
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    
  2. Entrez le répertoire temporaire créé () et procédez comme suit:

    make
    Sudo make install
    

---------

après la construction et l'installation, ajoutez les modules d'extension sur PYTHON_PATH

export PYTHONPATH=~/projects/opencv/release/lib:$PYTHONPATH
5
pylover

Sur Debian, j’ai installé python-opencv, python-virtualenv, python-pip, puis créé un virtualenv en utilisant l’option --system-site-packages.

4
yuval

Ceci est possible en passant l'exécutable python comme argument à cmake. Je suggèrerais également d'utiliser un dossier d'installation local pour ne pas avoir besoin de Sudo. Et puis, si make install ne vous demande pas d’autorisations Sudo, il s’agit probablement de cibler votre python virtualenv.

Ouvrez le fichier cmakelists.txt avec cmake-gui pour afficher les variables python. Cela donnerait aussi probablement une erreur si vous n'avez pas numpy dans votre virtualenv, donc vous saurez ainsi choisir le bon python. Cela fonctionnerait également avec une version indépendante de python, car elle est construite spécifiquement pour votre exécutable python.

0
Semicolon Warrier