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

81

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

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

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

OpenCV 2.4.9 ready to be used

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

$ 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 установлен в текущий каталог, в котором я находился, когда я запускал установку script, это подкаталог моей домашней папки.

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

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

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

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

  • 1
    возможный дубликат OpenCV - не удается найти модуль cv2
  • 0
    @krock Я не думаю, что это двойник этого. У меня нет файла cv2.so, присутствующего в моей директории site-packages, как у этого пользователя. Кроме того, я упомянул два решения, которые приведены в этом посте, и ни одно из них не помогло здесь.
Показать ещё 3 комментария
Теги:
opencv
importerror

15 ответов

109

Я думаю, что у вас нет пакета python-opencv.

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

sudo apt-get install python-opencv

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

  • 0
    Почему ваш ответ должен отличаться от других?
  • 0
    У ОП есть пакет. В противном случае ошибка ImportError скажет: «нет пакета с именем cv2».
Показать ещё 8 комментариев
28

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

conda install opencv

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

  • 1
    Это будет работать при условии, что ваш питон - Анаконда.
  • 0
    Это сработало и для меня! Upvoted
Показать ещё 1 комментарий
14

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

sudo apt-get install python-opencv libopencv-dev python-numpy python-dev
  • 1
    Мне пришлось вырезать часть opencv-dev , но в остальном этот ответ мне помог.
  • 0
    Лучший ответ здесь!
11

Использовать pip:

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
    Какой пакет пипов я должен использовать для OpenCV? Многие из них перечислены на pypi.python.org/pypi , не ясно, какой из них является официальным и / или текущим.
  • 0
    Я собираюсь отредактировать свой ответ с помощью краткого руководства, отметьте его как правильный, если это было полезно
Показать ещё 2 комментария
10

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

7

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

sudo gedit ~/.bashrc

и добавьте

export PYTHONPATH=/usr/local/lib/python2.7/dist-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.

4

Убедитесь, что cv2.so выполнил компиляцию: /usr/local/lib/python 2.7/site-packages Затем экспортируйте этот путь, как этот

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

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

3

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

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

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

2

Создайте символическую ссылку на 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
1

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

1

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

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

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

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

скопировать файл в каталог сайтов-пакетов

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

Мне показалось, что это работает на Max OSX: https://anaconda.org/menpo/opencv3

conda install -c menpo opencv3=3.1.0

Я подтвердил, что вы можете импортировать cv2 в python, используя python2.7 и python3

0

Для тех, кто пытается использовать 3.1.0, но после установки python говорит, что "модуль cv2 не найден".

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

sudo apt-get install python-dev

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню