Pull to refresh

Python3 — ImportError: No module named 'cv2'

Reading time2 min
Views9.4K

В заголовке известная ошибка python3.

Интерпретатор python2 импортирует opencv без ошибок при установке совместно с python3 в единой среде исполнения.

Краткая инструкция по локализации ошибки далее.

Среда исполнения

Дистрибутив линукс с длинным циклом поддержки.

Установлены все стабильные обновления.

Все пакеты развёрнуты системным менеджером ( apt ) или сборкой в среде исполнения из исходных текстов штатными средствами.

Установлены штатным способом два интерпретатора: python-2.7 и python-3.5.

Пакетов со стороны, пакетов собранных вне среды исполнения, нарушенных зависимостей, конфликтов версий нет.

Признаки ошибки

Ошибка возникает на этапе загрузки библиотеки opencv в интерпретаторе python‑3.5.

Причина ошибки

Причина ошибки — разные файловые структуры у python‑2.7 и python‑3.5; отличие системы индексов версий в именовании каталогов и файлов.

В одном случае, python‑2.7, один индекс версии — 2.7.

В другом случае, python‑3.5, три индекса версии — 3, 3.5 и 3.5m.

Конфигуратор сборки opencv устанавливает файловые пути python3 подобно python2.

Сборка и установка модулей opencv для python3 производится с ошибками файловой структуры.

Локализация ошибки

Ошибка исправляется через уточнение связанных параметров cmake с последующей установкой opencv из исходных текстов.

CMAKE_BUILD_TYPE:STRING=Release

OPENCV_FORCE_PYTHON_LIBS:BOOL=ON
OPENCV_PYTHON3_VERSION:BOOL=ON

PYTHON2_EXECUTABLE:FILEPATH=/usr/bin/python2.7
PYTHON2_INCLUDE_DIR:PATH=/usr/include/python2.7
PYTHON2_INCLUDE_DIR2:PATH=/usr/include/x86_64-linux-gnu/python2.7
PYTHON2_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpython2.7.so
PYTHON2_LIBRARY_DEBUG:FILEPATH=
PYTHON2_NUMPY_INCLUDE_DIRS:PATH=/usr/lib/python2.7/dist-packages/numpy/core/include
PYTHON2_PACKAGES_PATH:PATH=/usr/lib/python2.7/dist-packages

PYTHON3_EXECUTABLE:FILEPATH=/usr/bin/python3
PYTHON3_INCLUDE_DIR:PATH=/usr/include/python3.5m
PYTHON3_INCLUDE_DIR2:PATH=/usr/include/x86_64-linux-gnu/python3.5m
PYTHON3_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpython3.5m.so
PYTHON3_LIBRARY_DEBUG:FILEPATH=
PYTHON3_NUMPY_INCLUDE_DIRS:PATH=/usr/lib/python3/dist-packages/numpy/core/include
PYTHON3_PACKAGES_PATH:PATH=/usr/lib/python3/dist-packages

Заключение

Ошибка локализована параметрами cmake.

Для других сред исполнения и версий python3 уточнять параметры cmake по‑обстоятельствам.

Tags:
Hubs:
Total votes 26: ↑4 and ↓22-18
Comments22

Articles