Instalando OpenCV para Python no Ubuntu, obtendo ImportError: Nenhum módulo denominado cv2.cv


87

Eu tenho um sistema Ubuntu 14.04, no qual desejo instalar o OpenCV e usá-lo com Python 2.x.

Instalei o OpenCV usando as instruções aqui: https://help.ubuntu.com/community/OpenCV

A instalação parecia funcionar corretamente, sem erros, o script terminou com saída

OpenCV 2.4.9 ready to be used

Quando tento executar o exemplo de script Python, obtenho o seguinte:

$ 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

Acho que sei por quê, só não sei como consertar. OpenCV instalado no diretório atual em que eu estava quando executei o script de instalação, é um subdiretório da minha pasta de início.

Outros que recebem esse erro de importação após a instalação parecem estar tendo um problema de caminho e têm sorte ao adicionar isso ao código:

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

ou atualizando seu PYTHONPATH com o mesmo diretório. Tentei adicionar esse código, não faz diferença. Não vejo nenhum arquivo no diretório "site-packages". Devo ter feito a instalação nesse diretório? Eu imagino que as instruções de instalação teriam explicado isso. Suspeito que meu problema tenha a ver com o Python não encontrar a instalação do OpenCV, mas não tenho certeza de como proceder.

Ajude-me a obter uma instalação utilizável do OpenCV da forma mais simples possível.



@krock Eu não acho que isso seja um idiota. Não tenho o arquivo cv2.so presente no diretório de pacotes do meu site como aquele usuário tinha. Além disso, mencionei as duas soluções fornecidas nesse post e nenhuma delas funcionou para mim aqui.
robm

1
mas você pode importar cv2? o antigo módulo cv (ou cv2.cv) não estará lá nas próximas versões do opencv
berak

@berak Não, também não consigo importar cv2.
robm

Respostas:


110

Acho que você não tem o python-opencvpacote.

Eu tive exatamente o mesmo problema e

sudo apt-get install python-opencv

resolveu o problema para mim.

você pode instalar o opencv a partir do seguinte link https://www.learnopencv.com/install-opencv3-on-ubuntu/ Funciona para mim. apt-get install não contém muitos pacotes de opencv


Por que sua resposta deve ser diferente das outras?
Michele d'Amico

O OP tem o pacote. Caso contrário, o ImportError diria, "nenhum pacote chamado cv2".
Andy Hayden

Mesmo problema, tentei instalar seguindo as instruções aqui: help.ubuntu.com/community/OpenCV Sem sorte. Essa solução funcionou para mim. Obrigado!
jschabs

2
Isso foi tão simples! Depois de agonizar com tantas outras "soluções" incrivelmente complexas, nenhuma das quais funcionou, isso funcionou. Obrigado! :-)
Rafael_Espericueta

sudo dnf instale o opencv-python para o fedora.
Dinuka Thilanga de

30

Eu também tive esse problema. Tentei coisas diferentes. Mas finalmente

conda install opencv

trabalhou para mim.


1
Isso funcionará supondo que seu python seja o Anaconda.
ComputerScientist

4
Nota conda install opencvnão funciona para Windows 64 bits.
shahar_m

17

Se você quiser o mais simples possível, instale a partir do repositório:

sudo apt-get install python-opencv libopencv-dev python-numpy python-dev

1
Tive que cortar a opencv-devparte, mas por outro lado, essa resposta funcionou bem para mim.
Brian Z,

Melhor resposta aqui!
Giacomo1968

11

Use pip:

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

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

E quando você adiciona um caminho para PYTHONPATH com sys, PYTHONPATH é sempre reiniciado para os valores padrão quando você fecha o shell do Python. Verifique este tópico:

Adicionar permanentemente um diretório a PYTHONPATH

Primeiro adicione openCV ao seu caminho (guia rápido):

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

depois disso, instale os pacotes não-python dos quais pyopencv depende:

sudo apt-get build-dep python-opencv

finalmente, use pip:

pip install pyopencv

Além disso, você pode verificar este tutorial para instalar o openCV no ubuntu 14.04 LTS

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


4
Qual pacote pip devo usar para OpenCV? Há muitos listados em pypi.python.org/pypi , não está claro qual é oficial e / ou atual.
robm

Vou editar minha resposta com um breve guia, marque-o como correto se for útil
Juan David

2
Isso não está correto. A razão deste erro ser mostrado é porque o submódulo cv não está mais presente nas versões recentes.
Andy Hayden

Não estou falando sobre o motivo do erro. Estou apenas dando uma solução possível. Funciona para mim, talvez possa ser útil para outra pessoa @AndyHayden
Juan David

ERRO: Não foi possível encontrar uma versão que satisfaça o requisito pyopencv (das versões: 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) ERRO: Nenhuma distribuição correspondente encontrada para pyopencv
Stepan Yakovenko

10

Tente conda install -c conda-forge opencvse você estiver usando anaconda, funciona!


8

Encontre onde cv2.soestá o, por exemplo /usr/local/lib/python2.7/dist-packages, e adicione isso ao seu ~/.bashrcfazendo:

sudo gedit ~/.bashrc

e adicione

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

Na última linha

E então lembre-se de abrir outro terminal, isso pode dar certo e eu resolvi meu problema. Espero que isso possa ajudar-lhe.


5

Verifique se cv2.so compilou, deve ser colocado em: /usr/local/lib/python2.7/site-packages Em seguida, exporte esse caminho como este

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

Igual à resposta aqui


4

Meu ambiente:

  • Ubuntu 15.10
  • Python 3.5

Como nenhuma das respostas anteriores funcionou para mim, baixei o OpenCV 3.0 em http://opencv.org/downloads.html e segui o manual de instalação . Usei o seguinte 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 etapa do tutorial é importante. Particularmente, não se esqueça de ligar sudo make install.



3

Crie um link simbólico para OpenCV. Por exemplo:

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

2

Se você realmente tem certeza que instalou cv2, mas não dá nenhum erro de módulo. Existe uma solução para isso. Provavelmente você temcv2.so arquivo em seu diretório

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

mova isso cv2.so arquivo para

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

copie o arquivo no diretório de pacotes do site



2

É um pesadelo completo para a instalação, mas vou dar mais uma esperança de que você possa evitar a construção do opencv a partir da fonte:

pip install opencv-contrib-python


1

se você estiver usando a plataforma pycharm é muito simples ir em view => tool windows ==> python console depois disso você verá na parte inferior o console com [1]: digite isto!pip install opencv-python


1

Tentei todas as outras opções aqui, mas não consegui import cv2trabalhar com o Anaconda no Ubuntu. Esta é a única coisa que ajudou:

pip install opencv-python


obrigado. está funcionando: pip3 install opencv-python. ////// Testing: python3 / import numpy / import cv2
Soner PALANCI

1

Você pode construir para o código-fonte seguindo o tutorial oficial do OpenCV . A parte crucial é definir a PYTHON3_EXECUTABLE, PYTHON_LIBRARY, PYTHON3_PACKAGES_PATHe PYTHON3_NUMPY_INCLUDE_DIRSparâmetros para python3.6. Aqui estão todas as etapas:

  1. Clone o repo

    git clone https://github.com/opencv/opencv.git
  2. Criar builddiretório

    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. Teste

    python3
    import cv2

Se você não obtiver o erro "Nenhum módulo chamado cv2", a instalação foi bem-sucedida.

Observação: se você não souber o caminho numpypara o PYTHON3_NUMPY_INCLUDE_DIRSparâmetro, poderá encontrá-lo executando import numpye, numpy.__file__em seguida, em um shell python3.



0

Para mim, esse problema foi devido ao fato de que eu não tinha vinculado adequadamente o arquivo cv2.so no~/.virtualenvs/cv/lib/python3.5/site-packages pasta (o nome do seu virualenv pode não ser "cv", sua versão do python pode não ser 3.5 - ajuste adequadamente).

Se você for para a ~/.virtualenvs/cv/lib/python3.5/site-packagespasta e ls, o arquivo cv2.so deve aparecer em azul claro (Ubuntu 16.04), mostrando que está vinculado. Você pode verificar a localização do link digitando: readlink cv2.so

Se cv2.so aparecer em vermelho (como o meu), rm o arquivo e digite: (para minha instalação do python 3.5)

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

OU (se você tiver python 3.6)

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

Se você estiver trabalhando em python 2.6 ou python 2.7, digite:

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

Se os arquivos cv2.so ou cv2.cpython-36m-x86_64-linux-gnu.so não existirem em sua /usr/local/lib/python***/dist-packageslocalização, verifique se eles estão em um/usr/local/lib/python***/sites-packages pasta. Nesse caso, ajuste o caminho de acordo. Do contrário, algo deu errado com a instalação do opencv.

Esta resposta foi inspirada nas informações aqui: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/


0

Para aqueles que estão tentando usar 3.1.0, mas depois de instalar o python diz "módulo cv2 não encontrado".

Você provavelmente tem o python, mas não o python-dev.

sudo apt-get install python-dev

em seguida, reinstale o 3.1.0 e ele funcionará.


0

tente usar sudo apt install python3-opencv

ele instalará o pacote mais recente do cv aberto.

Ou você pode tentar reinstalar o pacote opencv. Pode ter sido corrompido durante a instalação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.