Python 3.5 ImportError: el módulo dynamic no define la función de exportación del módulo (PyInit_cv2)

Esto es lo que estoy obteniendo cuando trato de importar cv2 en python3.5 IDLE. Estoy usando OpenCV 3.1.0 Python3.5.2 Ubuntu 16.04

Intenté muchos métodos de instalación pero nadie resolvió mi problema, tuve la importación trabajando en el terminal, pero simplemente se detuvo también. ¿Alguien podría tener una solución?

import cv2 Traceback (most recent call last): File "", line 1, in  import cv2 ImportError: dynamic module does not define module export function (PyInit_cv2) 

Edición: seguí los tutoriales en estos enlaces:

http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html

http://www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/

Para python3, debes proporcionar a python un método init como entrada,

que está en cv.py supongo. Pero en mi caso,

este archivo no existía He copiado el código propio de google .

Si no se proporciona el cv.py ,

puede obtener el error ImportError: dynamic module does not define init function (PyInit_cv2) al import cv2 en python3 (no existe tal problema en python2).

Tuve este problema después de instalar otras versiones de OpenCV (por varios motivos, uno de ellos instalando ROS, que tiene su propia versión de OpenCV). Parece que esto causó un conflicto. Para asegurarse de que PyOpenCV se carga correctamente, ingrese una sesión interactiva y verifique:

 import sys print(sys.path) 

Puedes intentarlo dentro de IDLE también.

La ruta a cv2.cpython-35m-x86_64-linux-gnu.so debería aparecer allí. Si no es así, insértelo en la ruta:

 sys.path.insert(1, '') 

Asegúrese de que vaya antes de cualquier otra opción que pueda estar causando conflicto. Vuelva a intentarlo:

 import cv2 

Debería funcionar ahora y eso significaría que el problema era la ruta Python. También puede ayudar a descubrir qué está causando el conflicto en su caso y cuál es la mejor manera de resolverlo por usted.

También tuve este problema cuando estaba trabajando en una computadora con un entorno ROS. La solución más sencilla para mí fue no obtener el entorno ROS en .bashrc comentando la línea y reiniciando el terminal.

Tuve el mismo problema, que fue causado por el archivo cv2.so en /usr/local/lib/python2.7/site-packages/cv2.so . Después de eliminar el archivo y usar el comando sudo pip3 install opencv-python , funcionó para python3. Espero que eso ayude.

Primero necesitas get-pip.py, es una gran herramienta para instalar pip, nunca tuve ningún problema:

wget https://bootstrap.pypa.io/get-pip.py

Entonces necesitas instalar pip para python3, tengo python3.5 pero esto funcionaría para cualquier versión que creo:

python3.5 get-pip.py

Ahora pip está instalado para python3.5 y para usarlo con python3.4 debes llamarlo dentro de python3.5 así:

python3.5 -m pip

Así que si quieres instalar numpy deberías usar:

python3.5 -m pip install numpy