Установка OpenCV для Python на Ubuntu, получение ImportError: нет модуля с именем cv2.cv


87

У меня есть система Ubuntu 14.04, на которой я хочу установить OpenCV и использовать ее с Python 2.x.

Я установил OpenCV, следуя инструкциям здесь: https://help.ubuntu.com/community/OpenCV

Установка прошла нормально, ошибок нет, скрипт завершился выводом

OpenCV 2.4.9 ready to be used

Когда я пытаюсь запустить образец скрипта Python, я получаю следующее:

$ python opencv.py
Traceback (most recent call last):
  File "opencv.py", line 1, in <module>
    from cv2.cv import *
ImportError: No module named cv2.cv

Я подозреваю, что знаю почему, просто не знаю, как это исправить. OpenCV установлен в текущий каталог, в котором я находился при запуске сценария установки, это подкаталог моей домашней папки.

Другие, которые получают эту ошибку импорта после установки, похоже, имеют проблему с путем, и им повезло, добавив это в свой код:

import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')

или обновив свой PYTHONPATH тем же каталогом. Я пробовал добавить этот код, это не имеет значения. Я не вижу файлов в каталоге "site-packages". Должен ли я выполнять установку в этом каталоге? Я полагаю, что инструкции по установке объяснили бы это. Я подозреваю, что моя проблема связана с тем, что Python не находит установку OpenCV, но я не уверен, что делать дальше.

Пожалуйста, помогите мне установить OpenCV как можно проще.


1
возможный дубликат OpenCV - не удается найти модуль cv2
krock

@krock Не думаю, что это обман. У меня нет файла cv2.so, присутствующего в моем каталоге пакетов сайта, как у этого пользователя. Кроме того, я упомянул два решения, которые приведены в этом посте, и ни одно из них не сработало для меня здесь.
robm

1
а можно импортировать cv2? старый модуль cv (или cv2.cv) не будет в следующих версиях opencv
berak

@berak Нет, я тоже не могу импортировать cv2.
robm

Ответы:


110

Я думаю, у тебя нет python-opencvпакета.

У меня была такая же проблема, и

sudo apt-get install python-opencv

решил проблему для меня.

вы можете установить opencv по следующей ссылке https://www.learnopencv.com/install-opencv3-on-ubuntu/ У меня это работает. apt-get install не содержит многих пакетов opencv


Почему ваш ответ должен отличаться от других?
Мишель д'Амико,

У OP есть пакет. В противном случае ImportError скажет: «Нет пакета с именем cv2».
Энди Хайден

Та же проблема, попытался установить согласно инструкциям здесь: help.ubuntu.com/community/OpenCV Не повезло. Это решение сработало для меня. Благодарность!
jschabs 03

2
Это было так просто! После мучений над множеством других невероятно сложных «решений», ни одно из которых не сработало, это помогло. Благодарность! :-)
Rafael_Espericueta

sudo dnf установить opencv-python для Fedora.
Динука Тиланга

30

У меня тоже была эта проблема. Пробовал разные вещи. Но наконец

conda install opencv

работал у меня.


1
Это будет работать при условии, что ваш питон - Anaconda.
ComputerScientist

4
Обратите внимание, conda install opencvчто не работает для Windows 64 бит.
shahar_m

17

Если хотите как можно проще, установите из репозитория:

sudo apt-get install python-opencv libopencv-dev python-numpy python-dev

1
Мне пришлось вырезать эту opencv-devчасть, но в остальном этот ответ мне понравился.
Brian Z

Лучший ответ здесь!
Giacomo1968 05

11

Используйте пункт:

https://pypi.python.org/pypi/pip

$ pip install SomePackage
  [...]
  Successfully installed SomePackage

И когда вы добавляете путь к PYTHONPATH с помощью sys, PYTHONPATH всегда перезапускается до значений по умолчанию, когда вы закрываете оболочку Python. Проверьте эту тему:

Постоянно добавить каталог в PYTHONPATH

Сначала добавьте openCV в свой путь (Краткое руководство):

https://help.ubuntu.com/community/OpenCV

после этого установите пакеты, отличные от python, pyopencv зависит от:

sudo apt-get build-dep python-opencv

наконец, используйте pip:

pip install pyopencv

Кроме того, вы можете проверить это руководство, чтобы установить openCV в ubuntu 14.04 LTS.

http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/


4
Какой пакет pip я должен использовать для OpenCV? Многие из них перечислены на pypi.python.org/pypi , неясно, какие из них являются официальными и / или текущими.
robm

Я собираюсь отредактировать свой ответ с помощью краткого руководства, пожалуйста, отметьте его как правильный, если он был полезен
Хуан Дэвид

2
Это не так. Причина появления этой ошибки в том, что подмодуль cv больше не присутствует в последних версиях.
Энди Хайден

Я не говорю о причине ошибки. Я просто предлагаю возможное решение. Это работает для меня, может быть, может быть полезно для кого-то еще @AndyHayden
Хуан Дэвид

ОШИБКА: не удалось найти версию, удовлетворяющую требованию pyopencv (из версий: 2.0.wr1.0.1-demo, 2.0.wr1.0.1, 2.0.wr1.1.0, 2.1.0.wr1.0.0, 2.1.0.wr1. 0.1, 2.1.0.wr1.0.2, 2.1.0.wr1.1.0, 2.1.0.wr1.2.0) ОШИБКА: для pyopencv не найдено подходящего распределения
Степан Яковенко

10

Попробуйте, conda install -c conda-forge opencvесли вы используете анаконду, работает!


8

Найдите cv2.so, например /usr/local/lib/python2.7/dist-packages, где находится, а затем добавьте это в свой ~/.bashrc, выполнив:

sudo gedit ~/.bashrc

и добавить

export PYTHONPATH=/usr/local/lib/python2.7/dist-packages:$PYTHONPATH

В последней строке

А затем не забудьте открыть другой терминал, это может сработать, и я решил свою проблему. Надеюсь, это поможет тебе.


5

Убедитесь, что cv2.so скомпилирован, его следует поместить в: /usr/local/lib/python2.7/site-packages Затем экспортируйте этот путь следующим образом

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

То же, что и в ответе здесь


4

Моя среда:

  • Ubuntu 15.10
  • Python 3.5

Поскольку ни один из предыдущих ответов для меня не помог, я загрузил OpenCV 3.0 с http://opencv.org/downloads.html и выполнил руководство по установке . Я использовал следующую cmakeкоманду:

$ ~/Programs/opencv-3.0.0$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D PYTHON3_EXECUTABLE=/usr/bin/python3.5 -D PYTHON_INCLUDE_DIR=/usr/include/python3.5 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.5m -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages ..

Каждый шаг урока важен. В частности, не забывайте звонить sudo make install.


3

Я нашел решение в руководстве здесь:

http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

Я прибег к компиляции и установке из исходников. Процесс прошел очень гладко, если бы я знал, я бы начал с этого, вместо того, чтобы искать более простой способ установки. Надеюсь, эта информация кому-то будет полезна.


3

Создайте символическую ссылку на OpenCV. Например:

cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
ln -s /usr/local/lib/python2.7/dist-packages/cv.py cv.py

2

Если вы действительно уверены, что установили cv2, но он не дает ошибки модуля. Для этого есть решение. Возможно, у вас cv2.soв каталоге есть файл

/usr/local/lib/python2.7/site-packages/cv2.so

переместить этот cv2.soфайл в

/usr/lib/python2.7/site-packages

скопируйте файл в директорию site-packages



2

Его полный кошмар установки, но я дам еще одну надежду, что вы сможете избежать сборки opencv из исходников:

pip установить opencv-contrib-python


1

если вы используете платформу pycharm, очень просто перейти в view => tool windows ==> python console, после чего вы увидите внизу консоль с [1]: введите это!pip install opencv-python


1

Я попробовал все другие варианты здесь, но мне не удалось начать import cv2работать с Anaconda в Ubuntu. Это единственное, что помогло:

pip install opencv-python


Спасибо. он работает: pip3 install opencv-python. ////// Тестирование: python3 / import numpy / import cv2
Soner PALANCI

1

Вы можете собрать исходный код, следуя официальному руководству OpenCV . Решающая часть , чтобы установить PYTHON3_EXECUTABLE, PYTHON_LIBRARY, PYTHON3_PACKAGES_PATHи PYTHON3_NUMPY_INCLUDE_DIRSпараметры python3.6. Вот все шаги:

  1. Клонировать репо

    git clone https://github.com/opencv/opencv.git
    
  2. Создать buildкаталог

    cd ~/opencv
    mkdir build
    cd build
    
  3. Настроить

    cmake -D CMAKE_BUILD_TYPE=RELEASE \
          -D CMAKE_INSTALL_PREFIX=/usr/local .. \
          -D PYTHON_INCLUDE_DIR=/usr/include/python3.6 \
          -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m \
          -D BUILD_NEW_PYTHON_SUPPORT=ON \
          -D BUILD_opencv_python3=ON \
          -D HAVE_opencv_python3=ON \
          -D INSTALL_PYTHON_EXAMPLES=ON \
          -D PYTHON3_EXECUTABLE=/usr/bin/python3.6 \
          -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.6 \
          -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
          -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages .. \
          -D PYTHON3_NUMPY_INCLUDE_DIRS=/home/user/.local/lib/python3.6/site-packages/numpy/core/include/
    
  4. Построить

    make -j8
    
  5. Установить библиотеки

    sudo make install
    
  6. Контрольная работа

    python3
    import cv2
    

Если вы не получаете сообщение об ошибке «Нет модуля с именем cv2», значит установка прошла успешно.

Примечание: Если вы не знаете путь к numpyдля PYTHON3_NUMPY_INCLUDE_DIRSпараметра, вы можете найти его, выполнив , import numpyа затем numpy.__file__в Python3 оболочке.



0

Для меня эта проблема была связана с тем, что я неправильно связал файл cv2.so с помощью символьной ссылки в ~/.virtualenvs/cv/lib/python3.5/site-packagesпапке (имя вашего virualenv может не быть «cv», ваша версия python может быть не 3.5 - настройте соответственно).

Если вы перейдете в ~/.virtualenvs/cv/lib/python3.5/site-packagesпапку и ls, файл cv2.so должен появиться голубым цветом (Ubuntu 16.04), показывая, что он связан. Вы можете проверить расположение ссылки, набрав: readlink cv2.so

Если cv2.so отображается красным (как у меня), rm файл и введите: (для моей установки python 3.5)

ln -s /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

ИЛИ (если у вас Python 3.6)

ln -s /usr/local/lib/python3.6/dist-packages/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

Если вы работаете в Python 2.6 или Python 2.7, вместо этого введите:

ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so

Если файлы cv2.so или cv2.cpython-36m-x86_64-linux-gnu.so не существуют в вашем /usr/local/lib/python***/dist-packagesместоположении, проверьте, не находятся ли они в/usr/local/lib/python***/sites-packages папке. Если да, отрегулируйте путь соответствующим образом. Если нет, то с вашей установкой opencv что-то пошло не так.

Этот ответ был вдохновлен информацией здесь: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/


0

Для тех, кто пытается использовать 3.1.0, но после установки python сообщает: «Модуль cv2 не найден».

Вероятно, у вас есть python, но не python-dev.

sudo apt-get install python-dev

затем переустановите 3.1.0, и все заработает.


0

попробуйте использовать sudo apt install python3-opencv

он установит последний пакет open cv.

Или вы можете попробовать переустановить пакет opencv. Возможно, он был поврежден во время установки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.