Instalando OpenCV para Python en Ubuntu, obteniendo ImportError: Ningún módulo llamado cv2.cv

87

Tengo un sistema Ubuntu 14.04, en el que quiero instalar OpenCV y usarlo con Python 2.x.

Instalé OpenCV usando las instrucciones aquí: https://help.ubuntu.com/community/OpenCV

La instalación pareció ejecutarse correctamente, sin errores, el script terminó con salida

OpenCV 2.4.9 ready to be used

Cuando intento ejecutar el script de muestra de Python, obtengo lo siguiente:

$ python opencv.py
Traceback (most recent call last):
  File "opencv.py", line 1, in <module>
    from cv2.cv import *
ImportError: No module named cv2.cv

Sospecho que sé por qué, pero no sé cómo solucionarlo. OpenCV instalado en el directorio actual en el que estaba cuando ejecuté el script de instalación, es un subdirectorio de mi carpeta de inicio.

Otros que obtienen este error de importación después de la instalación parecen tener un problema de ruta y tienen suerte al agregar esto a su código:

import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')

o actualizando su PYTHONPATH con ese mismo directorio. Intenté agregar ese código, no hace ninguna diferencia. No veo ningún archivo en el directorio "site-packages". ¿Debería haber realizado la instalación en ese directorio? Me imagino que las instrucciones de instalación lo habrían explicado. Sospecho que mi problema tiene que ver con que Python no encuentra la instalación de OpenCV, pero no estoy seguro de cómo proceder.

Ayúdame a conseguir una instalación utilizable de OpenCV de la forma más sencilla posible.

robm
fuente
1
posible duplicado de OpenCV - no se puede encontrar el módulo cv2
krock
@krock No creo que esto sea una duplicidad de eso. No tengo el archivo cv2.so presente en mi directorio de paquetes de sitio como lo tenía ese usuario. Además, mencioné las dos soluciones que se dan en esa publicación, y ninguna funcionó para mí aquí.
robm
1
pero se puede importar cv2? el antiguo módulo cv (o cv2.cv) no estará allí en las próximas versiones de
opencv
@berak No, tampoco puedo importar cv2.
robm

Respuestas:

110

Creo que no tienes el python-opencvpaquete.

Tuve exactamente el mismo problema y

sudo apt-get install python-opencv

resolvió el problema para mí.

puede instalar opencv desde el siguiente enlace https://www.learnopencv.com/install-opencv3-on-ubuntu/ Me funciona. apt-get install no contiene muchos paquetes de opencv

ozguronur
fuente
¿Por qué tu respuesta debería ser diferente a las demás?
Michele d'Amico
El OP tiene el paquete. De lo contrario, ImportError diría, "ningún paquete llamado cv2".
Andy Hayden
El mismo problema, intenté instalar siguiendo las instrucciones aquí: help.ubuntu.com/community/OpenCV No hubo suerte. Esta solución funcionó para mí. ¡Gracias!
jschabs
2
¡Eso fue tan simple! Después de agonizar por tantas otras "soluciones" increíblemente complejas, ninguna de las cuales funcionó, esto funcionó. ¡Gracias! :-)
Rafael_Espericueta
sudo dnf instala opencv-python para fedora.
Dinuka Thilanga
30

También tuve este problema. Probé cosas diferentes. Pero finalmente

conda install opencv

trabajó para mi.

Ashensw
fuente
1
Esto funcionará asumiendo que su python es Anaconda.
ComputerScientist
4
Tenga en cuenta que conda install opencvno funciona para Windows de 64 bits.
shahar_m
17

Si desea lo más simple posible, instale desde el repositorio:

sudo apt-get install python-opencv libopencv-dev python-numpy python-dev
nilsmagnus
fuente
1
Tuve que cortar la opencv-devparte, pero por lo demás, esta respuesta funcionó muy bien para mí.
Brian Z
¡La mejor respuesta aquí!
Giacomo1968
11

Utilice pip:

https://pypi.python.org/pypi/pip

$ pip install SomePackage
  [...]
  Successfully installed SomePackage

Y cuando agrega una ruta a PYTHONPATH con sys, PYTHONPATH siempre se reinicia a los valores predeterminados cuando cierra su shell de Python. Revisa este hilo:

Agregar de forma permanente un directorio a PYTHONPATH

Primero agregue openCV a su ruta (Guía rápida):

https://help.ubuntu.com/community/OpenCV

después de eso, instale los paquetes que no sean de Python de los que depende pyopencv:

sudo apt-get build-dep python-opencv

finalmente, usa pip:

pip install pyopencv

Además, puede consultar este tutorial para instalar openCV en ubuntu 14.04 LTS

http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

Juan David
fuente
4
¿Qué paquete de pip debería usar para OpenCV? Hay muchos listados en pypi.python.org/pypi , no está claro si alguno es oficial y / o actual.
robm
Voy a editar mi respuesta con una guía breve, márquela como correcta si fue útil
Juan David
2
Esto no es correcto. La razón por la que se muestra este error es porque el submódulo cv ya no está presente en las versiones recientes.
Andy Hayden
No me refiero al motivo del error. Solo estoy dando una posible solución. Funciona para mí, tal vez podría ser útil para otra persona @AndyHayden
Juan David
ERROR: No se pudo encontrar una versión que cumpla con el requisito pyopencv (de las versiones: 2.0.wr1.0.1-demo, 2.0.wr1.0.1, 2.0.wr1.1.0, 2.1.0.wr1.0.0, 2.1.0.wr1. 0.1, 2.1.0.wr1.0.2, 2.1.0.wr1.1.0, 2.1.0.wr1.2.0) ERROR: No se encontró una distribución coincidente para pyopencv
Stepan Yakovenko
10

Prueba conda install -c conda-forge opencvsi estás usando anaconda, ¡funciona!

xxx222
fuente
8

Encuentre dónde cv2.soestá, por ejemplo /usr/local/lib/python2.7/dist-packages, luego agregue esto a su ~/.bashrchaciendo:

sudo gedit ~/.bashrc

y añadir

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

En la ultima linea

Y luego recuerde abrir otra terminal, esto puede funcionar, y he resuelto mi problema. Espero que te ayude.

王 蒙蒙
fuente
5

Verifique si cv2.so se compiló, debe colocarse en: /usr/local/lib/python2.7/site-packages Luego, exporte esa ruta como esta

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

Igual que en la respuesta aquí

DeDenker
fuente
4

Mi entorno:

  • Ubuntu 15.10
  • Python 3.5

Como ninguna de las respuestas anteriores funcionó para mí, descargué OpenCV 3.0 de http://opencv.org/downloads.html y seguí el manual de instalación . Usé el siguiente cmakecomando:

$ ~/Programs/opencv-3.0.0$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D PYTHON3_EXECUTABLE=/usr/bin/python3.5 -D PYTHON_INCLUDE_DIR=/usr/include/python3.5 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.5m -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages ..

Cada paso del tutorial es importante. En particular, no olvide llamar sudo make install.

Martín Vseticka
fuente
3

Cree un enlace simbólico a OpenCV. P.ej:

cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
ln -s /usr/local/lib/python2.7/dist-packages/cv.py cv.py
usuario6033883
fuente
2

Si está realmente seguro de haber instalado cv2 pero no da ningún error de módulo. Hay una solución para esto. Probablemente tenga un cv2.soarchivo en su directorio

/usr/local/lib/python2.7/site-packages/cv2.so

mover este cv2.soarchivo a

/usr/lib/python2.7/site-packages

copiar el archivo en el directorio de paquetes de sitio

Harun ERGUL
fuente
2

Intente usar: from cv2 import cv

Esto funciona para mi.

litbak agitado
fuente
2

Es una pesadilla de instalación completa, pero te daré una esperanza más de que puedas evitar construir opencv desde la fuente:

pip instalar opencv-contrib-python

Stepan Yakovenko
fuente
1

si está utilizando la plataforma pycharm, es muy simple, vaya a la vista => ventanas de herramientas ==> consola de Python, luego verá en la parte inferior la consola con [1]: escriba esto!pip install opencv-python

Zaki Stu
fuente
1

Probé todas las otras opciones aquí, pero no pude import cv2trabajar con Anaconda en Ubuntu. Esto es lo único que ayudó:

pip install opencv-python

Crypdick
fuente
gracias. Funciona: pip3 instalar opencv-python. ////// Prueba: python3 / import numpy / import cv2
Soner PALANCI
1

Puede compilar para código fuente siguiendo el tutorial oficial de OpenCV . La parte fundamental es establecer las PYTHON3_EXECUTABLE, PYTHON_LIBRARY, PYTHON3_PACKAGES_PATHy PYTHON3_NUMPY_INCLUDE_DIRSparámetros para python3.6. Aquí están todos los pasos:

  1. Clonar el repositorio

    git clone https://github.com/opencv/opencv.git
    
  2. Crear builddirectorio

    cd ~/opencv
    mkdir build
    cd build
    
  3. Configurar

    cmake -D CMAKE_BUILD_TYPE=RELEASE \
          -D CMAKE_INSTALL_PREFIX=/usr/local .. \
          -D PYTHON_INCLUDE_DIR=/usr/include/python3.6 \
          -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m \
          -D BUILD_NEW_PYTHON_SUPPORT=ON \
          -D BUILD_opencv_python3=ON \
          -D HAVE_opencv_python3=ON \
          -D INSTALL_PYTHON_EXAMPLES=ON \
          -D PYTHON3_EXECUTABLE=/usr/bin/python3.6 \
          -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.6 \
          -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
          -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages .. \
          -D PYTHON3_NUMPY_INCLUDE_DIRS=/home/user/.local/lib/python3.6/site-packages/numpy/core/include/
    
  4. Construir

    make -j8
    
  5. Instalar bibliotecas

    sudo make install
    
  6. Prueba

    python3
    import cv2
    

Si no recibe el error "Ningún módulo llamado cv2", la instalación se realizó correctamente.

Nota: Si no conoce la ruta numpypara el PYTHON3_NUMPY_INCLUDE_DIRSparámetro, puede encontrarlo ejecutándolo import numpyy luego numpy.__file__en un shell de python3.

tsveti_iko
fuente
0

Esto pareció funcionar para mí en Max OSX: https://anaconda.org/menpo/opencv3

conda install -c menpo opencv3=3.1.0

cv2Confirmé que puedes importar en python usando python2.7 y python3

Dan Williams
fuente
0

Para mí, este problema se debió al hecho de que no había vinculado adecuadamente el archivo cv2.so en la ~/.virtualenvs/cv/lib/python3.5/site-packagescarpeta (el nombre de su virualenv puede no ser "cv", su versión de python puede no ser 3.5 - ajustar en consecuencia).

Si va a la ~/.virtualenvs/cv/lib/python3.5/site-packagescarpeta y ls, el archivo cv2.so debería aparecer en azul claro (Ubuntu 16.04) mostrando que está vinculado. Puede verificar la ubicación del enlace escribiendo: readlink cv2.so

Si cv2.so aparece en rojo (como lo hizo el mío), rm el archivo y escriba: (para mi instalación de python 3.5)

ln -s /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

O (si tiene python 3.6)

ln -s /usr/local/lib/python3.6/dist-packages/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

Si está trabajando en python 2.6 o python 2.7, en su lugar escriba:

ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so

Si los archivos cv2.so o cv2.cpython-36m-x86_64-linux-gnu.so no existen en su /usr/local/lib/python***/dist-packagesubicación, verifique si están en una /usr/local/lib/python***/sites-packagescarpeta. Si es así, ajuste la ruta en consecuencia. Si no es así, algo salió mal con la instalación de opencv.

Esta respuesta se inspiró en la información aquí: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

gtcoder
fuente
0

Para aquellos que están intentando usar 3.1.0 pero después de instalar Python dice "módulo cv2 no encontrado".

Es probable que tenga python pero no python-dev.

sudo apt-get install python-dev

luego reinstale 3.1.0 y funcionará.

Mark Silliman
fuente
0

intente usar sudo apt install python3-opencv

instalará el último paquete de open cv.

O puede intentar reinstalar el paquete opencv. Es posible que se haya dañado durante la instalación.

Pradyumn Joshi
fuente