Installing OpenCV for Python on Ubuntu, getting ImportError: No module named cv2.cv

PythonOpencvUbuntuImporterror

Python Problem Overview


I have an Ubuntu 14.04 system, on which I want to install OpenCV and use it with Python 2.x.

I installed OpenCV using the instructions here: https://help.ubuntu.com/community/OpenCV

The install seemed to run properly, no errors, the script ended with output

OpenCV 2.4.9 ready to be used

When I try to run the sample Python script, I get the following:

$ 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

I suspect I know why, I just don't know how to fix it. OpenCV installed to the current directory I was in when I ran the install script, it's a subdirectory of my home folder.

Others who get this import error after install seem to be having a path issue, and have luck adding this to their code:

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

or updating their PYTHONPATH with that same directory. I tried adding that code, it doesn't make a difference. I don't see any files in the "site-packages" directory. Should I have done the install in that directory? I imagine the installation instructions would have spelled that out. I suspect that my problem has to do with Python not finding the OpenCV install, but I'm not sure how to proceed.

Please help me get a usable install of OpenCV as simply as possible.

Python Solutions


Solution 1 - Python

I think you don't have the python-opencv package.

I had the exact same problem and

sudo apt-get install python-opencv

solved the issue for me.

you can install opencv from the following link https://www.learnopencv.com/install-opencv3-on-ubuntu/ It works for me . apt-get install doesnt contain many packages of opencv

Solution 2 - Python

I also had this issue. Tried different things. But finally

conda install opencv

worked for me.

Solution 3 - Python

If you want as simple as possible, install from the repository:

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

Solution 4 - Python

Use pip:

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

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

And when you add a path to PYTHONPATH with sys, PYTHONPATH it's always restarted to default values when you close your Python shell. Check this thread:

> https://stackoverflow.com/questions/3402168/permanently-add-a-directory-to-pythonpath

First add openCV to your path (Quick guide):

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

after that, install the non-python packages pyopencv depends on:

sudo apt-get build-dep python-opencv

finally, use pip:

pip install pyopencv

Also, you can check this tutorial to install openCV in ubuntu 14.04 LTS

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

Solution 5 - Python

Try conda install -c conda-forge opencv if you are using anaconda, it works!

Solution 6 - Python

Find where the cv2.so is, for example /usr/local/lib/python2.7/dist-packages, then add this into your ~/.bashrc by doing:

sudo gedit ~/.bashrc

and add

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

In the last line

And then remember to open another terminal, this can be work, and I have solve my problem. Hope it can help you.

Solution 7 - Python

Verify if cv2.so did compile, should be placed in: /usr/local/lib/python2.7/site-packages Then export that path like this

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

Same as in the answer here

Solution 8 - Python

My environment:

  • Ubuntu 15.10
  • Python 3.5

Since none of the previous answers worked for me, I downloaded OpenCV 3.0 from http://opencv.org/downloads.html and followed the installation manual. I used the following cmake command:

$ ~/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 ..

Each step of the tutorial is important. Particularly, don't forget to call sudo make install.

Solution 9 - Python

I found a solution in the guide here:

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

I resorted to compiling and installing from source. The process was very smooth, had I known, I would have started with that instead of trying to find a more simple way to install. Hopefully this information is helpful to someone.

Solution 10 - Python

Create a symbolic link to OpenCV. Eg:

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

Solution 11 - Python

If you really sure that you installed cv2 but it gives no module error. There is a solution for this. Probably you have cv2.so file in your directory

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

move this cv2.so file to

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

copy the file into site-packages directory

Solution 12 - Python

Its complete installation nightmare, but I'll give one more hope you can avoid building opencv from source:

pip install opencv-contrib-python

Solution 13 - Python

You can build for source following the official OpenCV tutorial. The crucial part is to set the PYTHON3_EXECUTABLE, PYTHON_LIBRARY, PYTHON3_PACKAGES_PATH and PYTHON3_NUMPY_INCLUDE_DIRS parameters for python3.6. Here are all the steps:

  1. Clone the repo

     git clone https://github.com/opencv/opencv.git
    
  2. Create build directory

     cd ~/opencv
     mkdir build
     cd build
    
  3. Configure

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

     make -j8
    
  5. Install libraries

     sudo make install
    
  6. Test

     python3
     import cv2
    

If you don't get the error "No module named cv2", then the installation was successful.

Note: If you don't know the path to numpy for the PYTHON3_NUMPY_INCLUDE_DIRS parameter, you can find it by executing import numpy and then numpy.__file__ in a python3 shell.

Solution 14 - Python

if you are using pycharm platform it's very simple go into view=>tool windows==>python console after that you will see in the bottom the console with [1] : type this !pip install opencv-python

Solution 15 - Python

Try using: from cv2 import cv

It works for me.

Solution 16 - Python

I tried all the other options here, but I could not get import cv2 working with Anaconda on Ubuntu. This is the only thing that helped:

pip install opencv-python

Solution 17 - Python

For those who are trying to use 3.1.0 but after installing python says "cv2 module not found".

You likely have python but not python-dev.

sudo apt-get install python-dev

then reinstall 3.1.0 and it'll work.

Solution 18 - Python

This seemed to work for me on Max OSX: https://anaconda.org/menpo/opencv3

conda install -c menpo opencv3=3.1.0

I confirmed that you can import cv2 in python using python2.7 and python3

Solution 19 - Python

For me, this problem was due to the fact that I had not appropriately sym-linked the cv2.so file in the ~/.virtualenvs/cv/lib/python3.5/site-packages folder (the name of your virualenv may not be "cv", your version of python may not be 3.5--adjust accordingly).

If you go to the ~/.virtualenvs/cv/lib/python3.5/site-packages folder and ls, the cv2.so file should appear in light blue (Ubuntu 16.04) showing that it is linked. You can check the link location by typing: readlink cv2.so

If cv2.so appears in red (as mine did), rm the file and type: (for my install of python 3.5)

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

OR (if you have python 3.6)

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

If you are working in python 2.6 or python 2.7, you instead type:

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

If the cv2.so or cv2.cpython-36m-x86_64-linux-gnu.so files do not exist in your /usr/local/lib/python***/dist-packages location, check to see if they're in a /usr/local/lib/python***/sites-packages folder. If so, adjust the path accordingly. If not, something has gone wrong with your opencv installation.

This answer was inspired by information here: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

Solution 20 - Python

try using sudo apt install python3-opencv

it will install the latest package of open cv.

Or you could try reinstalling the opencv package. It might have got corrupted during installation.

Solution 21 - Python

Uninstall pandas, then install it again:

pip uninstall pandas
pip install pandas

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionrobmView Question on Stackoverflow
Solution 1 - PythonozguronurView Answer on Stackoverflow
Solution 2 - PythonashenswView Answer on Stackoverflow
Solution 3 - PythonnilsmagnusView Answer on Stackoverflow
Solution 4 - PythonJuan DavidView Answer on Stackoverflow
Solution 5 - Pythonxxx222View Answer on Stackoverflow
Solution 6 - Python王蒙蒙View Answer on Stackoverflow
Solution 7 - PythonDeDenkerView Answer on Stackoverflow
Solution 8 - PythonMartyIXView Answer on Stackoverflow
Solution 9 - PythonrobmView Answer on Stackoverflow
Solution 10 - Pythonuser6033883View Answer on Stackoverflow
Solution 11 - PythonHarun ERGULView Answer on Stackoverflow
Solution 12 - PythonStepan YakovenkoView Answer on Stackoverflow
Solution 13 - Pythontsveti_ikoView Answer on Stackoverflow
Solution 14 - PythonZaki StuView Answer on Stackoverflow
Solution 15 - Pythonshaked litbakView Answer on Stackoverflow
Solution 16 - PythoncrypdickView Answer on Stackoverflow
Solution 17 - PythonMark SillimanView Answer on Stackoverflow
Solution 18 - PythonDan WilliamsView Answer on Stackoverflow
Solution 19 - PythongtcoderView Answer on Stackoverflow
Solution 20 - PythonPradyumn JoshiView Answer on Stackoverflow
Solution 21 - PythonsharadView Answer on Stackoverflow