Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install Python 2.7 bindings for OpenCV using MacPorts

When trying to "import cv" in python I get: "ImportError: No module named cv". This question has appeared in many forms, but I haven't found the answer that helps.

On my Mac OS X Lion, among many other ports, I have run:

sudo port install python27

and

sudo port install opencv +python27

Running:

port select python

I see: "python27 (active)"

And running:

port installed opencv

I see: "opencv @2.3.1a_1+python27 (active)"

What else should I check? Thanks.

like image 960
jensph Avatar asked Dec 07 '11 04:12

jensph


2 Answers

I had this same problem. It looks like a (maybe?) bug with the OpenCV install script for 2.3.1a. It will not create the Python bindings unless NumPy is already installed.

To fix it:

sudo port uninstall opencv
sudo port install py27-numpy
sudo port install opencv +python27

That worked for me! I found this by doing some Googling, and the correct answer was here: wbarczynski.org/wp/2011/11/25/opencv-with-py-bindings-on-mac-with-macports-intall-numpy-first/

like image 52
Pete Avatar answered Oct 25 '22 18:10

Pete


STEP ONE

Use Macports to install opencv.

STEP TWO

Put these two files somewhere on your PYTHONPATH (for example in your site-packages):

  • https://github.com/jonmrodriguez/opencv-2.3-new-python-bindings/blob/master/cv.py
  • https://github.com/jonmrodriguez/opencv-2.3-new-python-bindings/blob/master/cv2.so

STEP THREE

Create the below soft links (because cv2.so expects the dylibs to be in /usr/local but MacPorts installs to /opt/local):

cd /usr/local/lib/
ln -s /opt/local/lib/libopencv_core.2.3.dylib libopencv_core.2.3.dylib
ln -s /opt/local/lib/libopencv_flann.2.3.dylib libopencv_flann.2.3.dylib
ln -s /opt/local/lib/libopencv_imgproc.2.3.dylib libopencv_imgproc.2.3.dylib
ln -s /opt/local/lib/libopencv_video.2.3.dylib libopencv_video.2.3.dylib
ln -s /opt/local/lib/libopencv_ml.2.3.dylib libopencv_ml.2.3.dylib
ln -s /opt/local/lib/libopencv_features2d.2.3.dylib libopencv_features2d.2.3.dylib
ln -s /opt/local/lib/libopencv_highgui.2.3.dylib libopencv_highgui.2.3.dylib
ln -s /opt/local/lib/libopencv_calib3d.2.3.dylib libopencv_calib3d.2.3.dylib
ln -s /opt/local/lib/libopencv_objdetect.2.3.dylib libopencv_objdetect.2.3.dylib
ln -s /opt/local/lib/libopencv_legacy.2.3.dylib libopencv_legacy.2.3.dylib
ln -s /opt/local/lib/libopencv_contrib.2.3.dylib libopencv_contrib.2.3.dylib
like image 2
AlcubierreDrive Avatar answered Oct 25 '22 18:10

AlcubierreDrive