2017-03-07 2 views
3

J'essaie d'installer OpenCV 3.1.0 avec Python3 sur ma machine. Parce que j'ai Ubuntu 16.04, je suivais ce guide exactement:Impossible d'installer openCV 3.1.0 avec python3. CMAKE n'inclut pas ou ne lie pas correctement python

http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

Cependant, j'ai du mal à l'étape 4, après l'exécution de CMake. La sortie de mon programme de CMake a cet extrait:

-- OpenCL: 
--  Version:      dynamic 
--  Include path:    /home/kevin/opencv-3.1.0/3rdparty/include/opencl/1.2 
--  Use AMDFFT:     NO 
--  Use AMDBLAS:     NO 
-- 
-- Python 2: 
--  Interpreter:     /home/kevin/.virtualenvs/cv/bin/python (ver 3.5.2) 
-- 
-- Python 3: 
--  Interpreter:     /home/kevin/.virtualenvs/cv/bin/python3 (ver 3.5.2) 
-- 
-- Python (for build):   /home/kevin/.virtualenvs/cv/bin/python 
-- 
-- Java: 
--  ant:       NO 
--  JNI:       /usr/lib/jvm/java-8-oracle/include /usr/lib/jvm/java-8-oracle/include/linux /usr/lib/jvm/java-8-oracle/include 
--  Java wrappers:    NO 
--  Java tests:     NO 

Le fichier CMake ne marche pas correctement semblent lier les propriétés manquantes dans la section python (bibliothèques, numpy, packages_path). J'ai essayé de compiler opencv et de l'installer, et quand je charge python3 et importe cv, il dit qu'il n'a pas pu trouver le paquet cv.

J'ai essayé de modifier la commande CMAKE, donc au lieu d'utiliser ce que le guide a suggéré, j'ai ajouté trois paramètres pour forcer CMake à inclure les propriétés de python manquantes (les trois dernières propriétés ont été ma modification):

cmake -D CMAKE_BUILD_TYPE=RELEASE  \ 
-D CMAKE_INSTALL_PREFIX=/usr/local  \ 
-D INSTALL_PYTHON_EXAMPLES=ON  \ 
-D INSTALL_C_EXAMPLES=OFF  \ 
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules  \ 
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python  \ 
-D BUILD_EXAMPLES=ON \ 
-D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \ 
-D PYTHON_NUMPY_INCLUDE_DIR=~/.virtualenvs/cv/lib/python3.5/site-packages/numpy/core/include \ 
-D PYTHON_PACKAGES_PATH=~/.virtualenvs/cv/lib/python3.5/site-packes .. 

Mais encore, la sortie de cmake est la même (elle ne liste que l'interpréteur, et aucune autre propriété python), et quand j'essaie de construire opencv et de l'installer, mon interpréteur python n'a pas pu trouver le paquet opencv.

Mon fichier /usr/local/lib/python3.5/ n'avait pas de répertoire de packages de site après l'installation de opencv.

Quelqu'un peut-il me diriger dans la bonne direction? J'ai essayé de faire des recherches ces dernières heures pour trouver une solution, mais je n'ai pas trouvé de solution pour le moment, alors j'apprécierais beaucoup de conseils. Je vous remercie!

Mise à jour

je me rends compte que je dois ajouter -D BUILD_opencv_python3 = oui à la commande cmake afin que OpenCV recherche les bibliothèques python. Cependant, ceci est la nouvelle sortie que je reçois de CMake:

-- Python 3: 
--  Interpreter:     /home/kevin/.virtualenvs/cv/bin/python (ver 3.5.2) 
--  Libraries:     NO 
--  numpy:      NO (Python3 wrappers can not be generated) 
--  packages path:    lib/python3.5/site-packages 

Toute idée pourquoi CMake ne trouve pas mon python 3 bibliothèques correctement (même quand j'ajouter « -D PYTHON_LIBRARY =/usr/lib/x86_64-linux -gnu/libpython3.5m.so "aux options de cmake)?

Mise à jour

Je résolu le problème en supprimant tout le répertoire/build, et en cours d'exécution CMake sur un nouveau répertoire. Je pense que l'erreur a continué à apparaître en raison de la mise en cache effectuée par cmake, mais l'ajout du flag -D BUILD_opencv_python3 = yes semble faire l'affaire pour moi.

+0

Est-ce que votre PYTHON_PACKAGES_PATH est orthographié correctement? Le dernier dossier est 'site-packes'. Ne devrait-il pas s'agir de «sites-packages»? –

+0

Merci, c'était en effet une faute de frappe. Cependant, j'ai corrigé mon problème en supprimant tout le répertoire/build, et en exécutant de nouveau cmake (avec -D BUILD_opencv_python3 = yes). Je pense qu'il a donné une erreur à cause d'une sorte de cache de cmake, alors quand j'ai tout supprimé et recommencé, l'erreur était partie. – user3667125

+0

Vous avez effectivement répondu à votre question. Ce serait bien si au lieu de mises à jour dans la question, vous fournissez une réponse et l'acceptez.Voir plus ici https://stackoverflow.com/help/self-answer –

Répondre

6

J'ai corrigé mon problème en supprimant tout le répertoire/build et en exécutant cmake à nouveau (avec -D BUILD_opencv_python3 = yes). Je pense qu'il a donné une erreur à cause d'une sorte de cache de cmake, alors quand j'ai tout supprimé et recommencé, l'erreur était partie.

+1

J'ai eu le même problème, cela a fonctionné pour moi (Ubuntu 16.10, python3, Opencv3 avec contrib) –