Opencv 3.0.0 alpha with Python 3 failed to import cv2
I am using Anaconda 2.1.0 with python 3.4.1 and just created opencv 3.0.0-alpha on Mac OSX Yosemite with the following command:
cmake -D CMAKE_BUILD_TYPE=RELEASE
-D BUILD_PERF_TESTS=OFF
-D BUILD_opencv_python3=ON
-D CMAKE_OSX_ARCHITECTURES=x86_64
-D CMAKE_INSTALL_PREFIX=/usr/local
-D PYTHON3_EXECUTABLE=${ANACONDA}/bin/python3
-D PYTHON3_LIBRARY=${ANACONDA}/lib/libpython3.4m.dylib
-D PYTHON3_INCLUDE_DIR=${ANACONDA}/include/python3.4m
-D PYTHON3_NUMPY_INCLUDE_DIRS=${ANACONDA}/lib/python3.4/site-packages/numpy/core/include
-D PYTHON3_PACKAGES_PATH=${ANACONDA}/lib/python3.4/site-packages ..
The building seems to be successful. After building opencv, I got the files libopencv_*.dylib
. but I cannot import the cv2 module:
Python 3.4.1 |Anaconda 2.1.0 (x86_64)| (default, Sep 10 2014, 17:24:09)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/Users/scari/anaconda3/lib/python3.4/site-packages/cv2.so, 2): Library not loaded: libpython3.4m.dylib
Referenced from: /Users/scari/anaconda3/lib/python3.4/site-packages/cv2.so
Reason: image not found
>>>
Here's the output from sys.path:
>>> sys.path
['', '/Users/scari/anaconda3/lib/python34.zip', '/Users/scari/anaconda3/lib/python3.4', '/Users/scari/anaconda3/lib/python3.4/plat-darwin', '/Users/scari/anaconda3/lib/python3.4/lib-dynload', '/Users/scari/anaconda3/lib/python3.4/site-packages', '/Users/scari/anaconda3/lib/python3.4/site-packages/Sphinx-1.2.3-py3.4.egg', '/Users/scari/anaconda3/lib/python3.4/site-packages/runipy-0.1.1-py3.4.egg', '/Users/scari/anaconda3/lib/python3.4/site-packages/setuptools-5.8-py3.4.egg']
What should I check first?
source to share
Ok I had the same problem.
I fixed it thanks to this tutorial: https://gist.github.com/welch/6468594
libpython3.4m.dylib
not found, so you should check cv2.so
with this command:
otool -L ~/anaconda3/lib/python3.4/site-packages/cv2.so
The first two lines of the output should read something like:
cv2.so:
cv2.so (compatibility version 0.0.0, current version 0.0.0)
libpython3.4m.dylib (compatibility version 3.4.0, current version 3.4.0)
The problem is there is no absolute path for libpython3.4m.dylib
You can fix this with the command:
sudo install_name_tool -change libpython3.4m.dylib ~/anaconda3/lib/libpython3.4m.dylib ~/anaconda3/lib/python3.4/site-packages/cv2.so
This helped me to use opencv 3 with python 3 in anaconda ipython notebook
source to share