web-dev-qa-db-fra.com

Pourquoi cv2.so manquant après l'installation de opencv?

Aujourd'hui, j'ai installé l'opencv 2.4.4 pour Ubuntu 12.10

Mais importer cv2 ne fonctionne pas.

root@-:~# python
Python 2.7.3 (default, Sep 26 2012, 21:53:58) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>> 

Si je comprends bien cv2.so a manqué, donc python ne voit pas où

root@-:~# find / -name "cv.py"
/root/opencv-2.4.4/modules/python/src2/cv.py
root@-:~# find / -name "cv2.so"
root@-:~#

Mes étapes d'installation ressemblent à

wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.4/OpenCV-2.4.4a.tar.bz2
tar -xjf OpenCV-2.4.4a.tar.bz2
cd opencv-2.4.4
mkdir release
cd release 
cmake -D CMAKE_BUILD_TYPE=RELEASE   -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ..
make && make install
echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf
ldconfig  
echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> /etc/bash.bashrc
echo "export PKG_CONFIG_PATH" >> /etc/bash.bashrc

Où est cv2.so? Et pourquoi ça nous a manqué?

21
Alex

Comment installer opencv (cv2) avec des liaisons Python sous Linux - Ubuntu/Fedora

  1. Installez gcc, g ++/gcc-c ++, cmake (apt-get ou yum, dans le cas de yum Utilisez gcc-c ++)

    apt-get install gcc, g++, cmake
    
  2. Télécharger la dernière version de le site Web d'openCV

  3. Décompressez avec

    tar -xvf opencv-*
    
  4. Dans le dossier non-barré, créez un nouveau dossier appelé release

    mkdir release
    cd release
    

    (ou n'importe quel nom de dossier) et lancez cette commande

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ..
    

    le .. extraira les fichiers du dossier parents et préparera le système pour l'installation de sur votre plate-forme.

  5. dans le dossier de publication, exécutez

    make
    
  6. Après environ 2-3 minutes de traitement de make lorsque son exécution est terminée

    Sudo make install
    
  7. Exporter le chemin python

    export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
    

Ça y est, maintenant allez en python et essayez 

>>> import cv2

vous ne devriez pas recevoir de message d'erreur.

Testé sur Python 2.7, devrait être pratiquement similaire à Python 3.x.

46
Waqas

J'installe python-opencv pour résoudre mon problème sous Ubuntu 14.04 sh Sudo apt-get install python-opencv

11
Wei Yang

En utilisant raspbian sur une framboise pi, j’ai eu le problème de ne pas trouver le module également. J'avais trois versions de python (2.6, 2.7 et 3.2), assurez-vous que vous utilisez python2.7. Vous pouvez vérifier cela en exécutant:

python --version

J'ai découvert que dans mon cas, il fallait simplement installer python-dev.

Sudo apt-get install python-dev

Je n'ai pas eu à supprimer et réinstaller opencv, j'ai fait de mon mieux pour éviter cela, sachant qu'il faut quelques heures pour terminer le processus.

Après avoir installé python-dev, je me suis rendu dans le fichier dans lequel j'ai construit l'opencv. Pour moi, c'était "~/opencv-2.4.9/release", et je lui ai dit de créer 

Sudo make

après cela, j'ai pu trouver le fichier cv2.so. la recherche avec:

find / -name "cv2.so"

à ce stade, j'ai trouvé quelques fichiers . Ensuite, j'ai juste exécuté le python pour voir s'il pouvait trouver les "importer" 

python 
>>> import cv2

aucune erreur ne devrait arriver.

>>> import numpy

J'ai entendu dire que numpy était nécessaire pour que l'opencv fonctionne. À partir de là, je pense que vous devriez pouvoir exécuter votre script si aucune erreur ne survient. J'espère que ça aide. 

La page qui m'a aidé est répertoriée ...

http://opencv-users.1802565.n2.nabble.com/I-can-t-find-cv-so-and-cv2-so-after-compiling-td6671937.html

5
durkinza

J'ai eu un problème similaire lorsque j'ai configuré manuellement à l'aide de CMAKE sur OSX El Capitan. J'avais donné cette option supplémentaire:

PYTHON2_PACKAGES_PATH='lib/python2.7/site-packages'

ce qui a empêché l'installation de cv2.so dans ce paquet. Il semble s’installer correctement dans mon dossier de compilation après l’avoir retiré:

PYTHON2_EXECUTABLE='/usr/bin/python2.7'
PYTHON2_INCLUDE_DIR='/usr/include/python2.7'
PYTHON2_LIBRARY='/usr/lib/libpython2.7.dylib' # TODO - Fix for linux
PYTHON2_NUMPY_INCLUDE_DIRS='/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include' # Todo - Fix for linux


cd $OPENCV_DIR

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$OPENCV_INSTALL_PATH \
                                  -D WITH_CUDA=OFF \
                                  -D BUILD_opencv_python2:BOOL=ON \
                                  -D PYTHON2_EXECUTABLE=$PYTHON2_EXECUTABLE \
                                  -D PYTHON2_INCLUDE_DIR=$PYTHON2_INCLUDE_DIR \
                                  -D PYTHON2_LIBRARY=$PYTHON2_LIBRARY \
                                  -D PYTHON2_NUMPY_INCLUDE_DIRS=$PYTHON2_NUMPY_INCLUDE_DIRS \
                                  -D INSTALL_PYTHON_EXAMPLES:BOOL=ON \
                                  ..
make -j8
make install
3
ssk

J'ai ce problème dans mon OS X El Capitan.

J'ai suivi les instructions mentionnées dans ce tutoriel . L’installation ci-dessus n’a pas fonctionné correctement et le fichier cv2.so manquant dans les dossiers requis mention et à l’invite python apparaît.

Enfin, nous avons pensé que l’utilisation de la configuration virtuelle Python posait problème. Donc désinstallé avec 

pip install virtualenv virtualenvwrapper

Puis couru 

brew link opencv

qui a jeté des erreurs.

Et ensuite, suivez les étapes ci-dessous pour résoudre le problème.

Première exécution 

brew link opencv

Si cela donne une erreur, essayez un diagnostic automatisé

brew doctor

brew doctor donne une liste des problèmes pouvant entraîner des erreurs lors du processus d'installation. 

Pour résoudre les problèmes en cas de fichiers en conflit, Exécute pour obtenir une liste de toutes les actions qui seront exécutées par écrasement sans les effectuer. 

Pour lister tous les fichiers qui seraient supprimés:

  brew link --overwrite --dry-run opencv

suivi de cette exécution qui exécutera l'écrasement, en supposant que les actions effectuées par écrasement entraînent votre système dans un état plus stable.

Pour forcer le lien et écraser tous les fichiers en conflit:

 brew link --overwrite opencv

Ce tutoriel est une alternative plus simple.

2
Vinay Vemula

Aucun de ce qui précède n'a fonctionné pour moi; suis dans Ubuntu 16.04 sur une instance ec2 et avait anaconda installé alors je viens d'utiliser

conda install opencv pour mes deux installations conda2 et 3

1
E. Case

Je suis tombé sur un problème similaire. Après avoir approfondi cela un peu plus, je suis tombé sur un message dans lequel il était mentionné que le paquetage python-numpy était requis. J'ai donc désinstallé l'opencv en exécutant la commande suivante dans le dossier de construction (dans le dossier de publication de votre cas):

dpkg -r build

Ensuite, j'ai supprimé tous les fichiers opencv. J'ai installé python-numpy et python-dev avec cette commande:

Sudo apt-get install python-dev python-numpy

Ensuite, après avoir ré-exécuté le script d'installation, la commande import cv2 dans la console Python ne me génère aucune erreur et est correctement importée.

0
skadoosh

Dans mon cas, c'était un problème avec cmake:

Sudo apt install software-properties-common
Sudo add-apt-repository ppa:george-edison55/cmake-3.x
Sudo apt update

Si cmake n'est pas encore installé:

Sudo apt install cmake

Si cmake est déjà installé:

Sudo apt upgrade

Pour plus d'informations, voir ce lien .

Toutes les réponses ci-dessus (cela n'a pas fonctionné pour moi} _), cependant, après toute une journée de difficulté, j'ai finalement résolu ce problème.

Pour avoir cv2.so, nous avons besoin de:

  1. Au moins python 2 ou 3 installé. c'est pourquoi les gens disent: Sudo apt-get install python-dev. Mais c’est non nécessaire, dans mon cas, j’utilise anaconda python. (il y a beaucoup de façons d'installer python)
  2. numpy est également un must. donc, quel que soit le python que vous utilisez, assurez-vous de l'avoir téléchargé. Dans mon cas, j'utilise anaconda numpy. (anaconda l’a déjà installé, pour python normal, utilisez pip install numpy)

Pour indiquer à camke où se trouve le chemin, prenez ma commande à titre d'exemple:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
      -D PYTHON2_EXECUTABLE='/home/parallels/anaconda2/bin/python' \
      -D PYTHON2_LIBRARY='/home/parallels/anaconda2/lib/python2.7' \
      -D PYTHON2_NUMPY_INCLUDE_DIRS='/home/parallels/anaconda2/lib/python2.7/site-packages/numpy/core/include' \
      -D BUILD_EXAMPLES=ON ..

pour python3 , vous devriez (j'utilise anaconda python, alors j'ai lié tout à l'anaconda):

cmake -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.3.1/modules \
      -D PYTHON3_EXECUTABLE='/home/test/SoftWare/anaconda3/bin/python3.6m' \
      -D PYTHON_INCLUDE_DIR='/home/test/SoftWare/anaconda3/include/python3.6m' \
      -D PYTHON3_LIBRARY='/home/test/SoftWare/anaconda3/lib/libpython3.6m.so' \
      -D PYTHON3_NUMPY_INCLUDE_DIRS='/home/test/SoftWare/anaconda3/lib/python3.6/site-packages/numpy/core/include' \
      -D PYTHON3_PACKAGES_PATH='/home/test/SoftWare/anaconda3/lib/python3.6/site-packages' ..

_ {Une chose à retenir} !!! avant de saisir cmake ... 1. nettoyez votre dossier de construction, 2.Camke once once! sinon vous ne pouvez pas changer ... (c'est un bug je pense)

Je sais qu'il peut y avoir des arguments inutiles, mais je suis fatigué d'essayer de les nettoyer. Voici une capture d'écran de mes informations d'impression cmake.capture d'écran de mes informations cmake

Vous pouvez voir clairement que seul python2 peut générer cv2.so. python3 ne peut pas! (Les wrappers Python3 ne peuvent pas être générés).

0
craig zhang