2

I am trying to use OpenCV on a python web application I created on an Amazon EC2 Micro instance running apache.

I've got everything configured and working, except OpenCV isn't installing. This is the output I got from the Apache Error Log.

[Thu Aug 04 18:31:54 2016] [error] [client 72.219.147.5]     import cv2
[Thu Aug 04 18:31:54 2016] [error] [client 72.219.147.5] ImportError: No module named cv2

Here is what I've tried:

I've installed pip and tried running pip install pyopencv

That doesn't work and gives me errors.

I've also tried manually installing it by following this: How to install OpenCV on Amazon Linux?

and this: http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.html?highlight=download#installing-opencv-python-from-pre-built-binaries

and this: http://techieroop.com/install-opencv-in-centos/

Even after installation, the cv2.so file is nowhere to be be found. I tried to search for it using sudo find / -name "cv2.so" but nothing came up.

I do, however, have the following .so files installed:

/usr/local/lib/libopencv_photo.so
/usr/local/lib/libopencv_stitching.so
/usr/local/lib/libopencv_flann.so
/usr/local/lib/libopencv_imgcodecs.so
/usr/local/lib/libopencv_videostab.so
/usr/local/lib/libopencv_ml.so
/usr/local/lib/libopencv_objdetect.so
/usr/local/lib/libopencv_imgproc.so
/usr/local/lib/libopencv_superres.so
/usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_video.so
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_features2d.so
/usr/local/lib/libopencv_shape.so
/usr/local/lib/libopencv_videoio.so
/usr/local/lib/libopencv_calib3d.so

Also, when running the cmake command, this is the output I'm getting:

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.10)
--     Libraries:                   NO
--     numpy:                       NO (Python wrappers can not be generated)
--     packages path:               lib/python2.7/dist-packages

Any help is appreciated.

10
  • Did you copy cv2.so to site-packages under your python distribution (e.g. /usr/local/lib/python2.7/site-packages)? Commented Aug 4, 2016 at 19:22
  • @bblincoe where is the cv2.so file? In my /usr/local/lib/python2.6/ I don't have any cv2.so file but I have files for pip. In my /usr/local/lib/python2.7/ I only have a README Commented Aug 4, 2016 at 19:32
  • Take a look at this thread: stackoverflow.com/questions/15790501/… Commented Aug 4, 2016 at 19:37
  • Another good resource is pyimagesearch.com/2015/10/26/… (specifically geared towards Raspberry Pi, but still a Linux env) Commented Aug 4, 2016 at 19:40
  • 1
    What about this? techieroop.com/install-opencv-in-centos Commented Aug 4, 2016 at 20:04

3 Answers 3

17
+50

tested and working on amzn-ami-hvm-2016.03.1.x86_64-gp2

sudo yum install git cmake gcc-c++ numpy python-devel 
sudo pip install --upgrade pip
sudo ln -rs /usr/local/bin/pip /usr/bin/
wget https://pypi.python.org/packages/18/eb/707897ab7c8ad15d0f3c53e971ed8dfb64897ece8d19c64c388f44895572/numpy-1.11.1-cp27-cp27mu-manylinux1_x86_64.whl
sudo pip install numpy-1.11.1-cp27-cp27mu-manylinux1_x86_64.whl 
git clone https://github.com/Itseez/opencv.git
cd opencv
git checkout 3.1.0
mkdir build
cd build
cmake .. -DBUILD_opencv_python2=ON
make -j4
sudo make install
echo 'export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages/:/usr/local/lib/python2.7/dist-packages/'>>~/.bashrc;. ~/.bashrc
python -c 'import cv2; print "cv2 imported"'

most importantly after cmake step. you should see this in the output.

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.10)
--     Libraries:                   /usr/lib64/libpython2.7.so (ver 2.7.10)
--     numpy:                       /usr/local/lib64/python2.7/site-packages/numpy/core/include (ver 1.11.1)
--     packages path:               lib/python2.7/dist-packages

now if it is not showing up, you need to completely remove build folder and rerun cmake again after correctly installing numpy, just rerunning cmake inside your already existing build folder will not work.

Sign up to request clarification or add additional context in comments.

10 Comments

I ran the cmake command, and realized that numpy wasn't correctly installed. So I did sudo yum uninstall numpy. Then I tried installing numpy-1.11.1-cp27-cp27mu-manylinux1_x86_64.whl, but I got numpy-1.11.1-cp27-cp27mu-manylinux1_x86_64.whl is not a supported wheel on this platform
I've also updated my question with the output I get when running cmake
hmm..try the whl listed here pypi.python.org/pypi/numpy. there's 4 for linux.
None of the four work. I keep getting this error: numpy-1.11.1-cp27-cp27mu-manylinux1_i686.whl is not a supported wheel on this platform.
that's strange. what's the ami id of your instance?
|
3

First create a virtual environment for python with the updated version of python because python2.7 is installed on it by default. Take help from the following link:-

https://aws.amazon.com/premiumsupport/knowledge-center/python-boto3-virtualenv/

Then cd into the venv folder and execute the command :-

$ pip install opencv-python

Now run any script containing opencv by activating the virtual environment.

$ source /home/ec2-user/venv/python34/bin/activate

Done!!!

Comments

1

I tried the command below and it worked:

cmake -D PYTHON2_LIBRARIES=/home/ubuntu/anaconda2/lib/libpython2.7.so.1.0 \
-D PYTHON2_INCLUDE_DIR=/home/ubuntu/anaconda2/include/python2.7/ \
-D PYTHON2_EXECUTABLE=/home/ubuntu/anaconda2/bin/python \
-D HAVE_opencv_python2=ON ..

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.