Shalin Shah Shalin Shah - 16 days ago 15
Python Question

Installing OpenCV/python on Amazon Linux (apache)?

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.

Answer

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.