Python 3.5 ImportError: динамический модуль не определяет функцию экспорта модуля (PyInit_cv2)

Это то, что я получаю, когда пытаюсь импортировать cv2 в python3.5 IDLE. Я использую OpenCV 3.1.0 Python3.5.2 Ubuntu 16.04

Я пробовал много методов установки, но никто не решил мою проблему, у меня был импорт, работающий на терминале, но он просто остановился. У любого может быть решение?

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

Редактировать: я следил за учебниками по этим ссылкам:

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/

  • Разрешения для флагов для записи файлов
  • Как заставить tkinter работать с установкой Ubuntu по умолчанию Python 2.7?
  • Обновите до numpy 1.8.0 на Ubuntu 12.04
  • Создание задания Cron - Linux / Python
  • Ошибка изображения Docker: "/ bin / sh: 1: [python ,: not found"
  • `pip install pandas` дает UnicodeDecodeError: кодек ascii не может декодировать байт 0xe2 в позиции 41: порядковый номер не в диапазоне (128)
  • Нужен скрипт init.d для приложения Python
  • Как я могу сам создать python из исходного кода на Ubuntu?
  • 4 Solutions collect form web for “Python 3.5 ImportError: динамический модуль не определяет функцию экспорта модуля (PyInit_cv2)”

    Для python3 вам необходимо предоставить python метод init качестве входа,

    который, как я думаю, в cv.py Но в моем случае,

    этого файла не было. Я скопировал собственный код google .

    Если cv.py не предоставляется,

    вы можете получить ошибку ImportError: dynamic module does not define init function (PyInit_cv2) при import cv2 в python3 (такой проблемы нет в python2).

    У меня возникла эта проблема после того, как я установил другие версии OpenCV (по разным причинам, один из которых установил ROS, у которого есть своя версия OpenCV). Кажется, это вызвало конфликт. Чтобы убедиться, что PyOpenCV загружается правильно, введите интерактивный сеанс и проверьте:

     import sys print(sys.path) 

    Вы можете попробовать и внутри IDLE.

    Там должен появиться путь к cv2.cpython-35m-x86_64-linux-gnu.so. Если это не так, вставьте его в путь:

     sys.path.insert(1, '<path to .../dist-packages with cpython so>') 

    Удостоверьтесь, что это происходит перед любым другим вариантом, который может вызвать конфликт. Затем повторите попытку:

     import cv2 

    Теперь он должен работать, и это будет означать, что проблема заключается в пути python. Это также может помочь выяснить, что вызывает конфликт в вашем случае, и как лучше всего его решить для вас.

    У меня также была эта проблема, когда я работал на компьютере с окружением ROS. Самое простое решение для меня состояло в том, чтобы не запускать среду ROS в .bashrc, комментируя строку и перезагружая терминал.

    Сначала вам нужно get-pip.py, это отличный инструмент для установки pip, никогда не возникало проблем:

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

    Тогда вам нужно установить pip для python3, у меня есть python3.5, но это будет работать для любой версии, я считаю:

    python3.5 get-pip.py

    Теперь pip установлен для python3.5 и для его использования с python3.4 вам нужно вызвать его в python3.5 следующим образом:

    python3.5 -m pip

    Поэтому, если вы хотите установить numpy, вы должны использовать:

    python3.5 -m pip install numpy

    Python - лучший язык программирования в мире.