Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ImportError: dynamic module does not define module export function (PyInit_cv2)

When I try to import cv2 in IPython , I am getting this error-

ImportError: dynamic module does not define module export function (PyInit_cv2)

I have opencv 3.0, ubuntu 14.04, python 3.4.
I searched online but couldn't get any answer.

like image 321
Aparna P L Avatar asked Mar 17 '16 19:03

Aparna P L


2 Answers

Python3 libraries usually can be found in: /usr/lib/python3/dist-packages

I found out that the library cv2.cpython-34m.so is needed for Python3.4. But this file wasn't be contained in my default library directory.

In my environment, this library was stored in /usr/local/lib/python3.4/dist-packages/

So I created a symbolic link. Try it with:

cd /usr/lib/python3/dist-packages
sudo ln -s /usr/local/lib/python3.4/dist-packages/cv2.cpython-34m.so

python3
>>> import cv2

I hope, this helps you

like image 132
Julian Avatar answered Sep 28 '22 16:09

Julian


In my case, I was using opencv library for python2 in python3.

Check your PYTHONPATH by typing

echo $PYTHONPATH

and see there is correct path for python3.

$ echo $PYTHONPATH
:/usr/local/lib/python3.4/site-packages

I define PYTHONPATH at the end of ~/.bashrc file. Modify it if you are loading python2's library.

After source ~/.bashrc or restart terminal, check PYTHONPATH again

It solves my problem.

like image 38
insikk Avatar answered Sep 28 '22 18:09

insikk