Не удается найти модуль cv2 при использовании OpenCV


264

Я установил OpenCV в операционной системе Occidentalis (вариант Raspbian) на Raspberry Pi, используя скрипт jayrambhia, найденный здесь . Установлена ​​версия 2.4.5.

Когда я пытаюсь import cv2в программе Python, я получаю следующее сообщение:

pi@raspberrypi~$ python cam.py
Traceback (most recent call last)
File "cam.py", line 1, in <module>
    import cv2
ImportError: No module named cv2

Файл cv2.soхранится в/usr/local/lib/python2.7/site-packages/...

Есть также папки с /usr/local/libименами python3.2 и python2.6, которые могут быть проблемой, но я не уверен.

Возможно, это ошибка пути? Любая помощь приветствуется, я новичок в Linux.


3
попробуйте: python --version. если написано 3.2, значит, вы получили подсказку. попробуйте найти исполняемый файл 2.7 и назовите его с абсолютным путем
berak

3
Для MacOS 10.12 и Python 3 простую команду ниже работали , чтобы устранить ошибку: пип установить OpenCV-питон См: pypi.python.org/pypi/opencv-python
Tushar

Если вы используете macOS Catalina, возможно, это поможет вам stackoverflow.com/a/61578366/11559619
NicolasElPapu

Ответы:


347

Сначала выполните эти команды внутри терминала / CMD:

conda update anaconda-navigator  
conda update navigator-updater  

тогда проблема для инструкции ниже будет решена

для Windows, если у вас установлена ​​Anaconda, вы можете просто сделать

pip install opencv-python

или

conda install -c https://conda.binstar.org/menpo opencv

если вы используете Linux, вы можете сделать:

pip install opencv-python

или

conda install opencv 

Ссылка1 Ссылка2

Для python3.5 + проверьте эти ссылки: Link3 , Link4


7
для linux вы должны набрать 'pip install opencv-python' или 'sudo pip install opencv-python'
Оз Радиано

12
Вы неправильно поняли команду. Это sudo pip3 install opencv-python. Кроме того, для linux вы должны запустить его как sudo pip3 install opencv-pythonдля python 3 и sudo pip install opencv-pythonдля python 2. Вам не нужен sudo в начале команды, если вы выполняете sudo -iforst или работаете от имени root каким-либо образом.
Stiffy2000

2
Если у вас возникли проблемы при установке, убедитесь, что у вас самая новая версия pip, pip install --upgrade pipэто был мой плетень
mrk

4
pip install opencv-pythonработает для меня, и у меня нет Анаконды. Просто к сведению для всех, кто приходит сюда.
tilper


73

Это происходит, когда python не может обратиться к вашей папке site-packages по умолчанию, где вы сохранили необходимые файлы или библиотеки python

Добавьте эти строки в коде:

import sys

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

или перед запуском команды python в bash перейдите в каталог /usr/local/lib/python2.7/site-packages . Это обходной путь, если вы не хотите добавлять что-либо в код.


1
Вы работаете над Windows? Этот путь похож на систему Linux.
FavorMylikes

1
вопрос был о Raspbian OS, которая является Linux.
Midhun

2
Работал для меня на машине Mac
песчаный

это работает для одного сеанса, но если я выйду и перезапущу python, мне придется сделать это снова. как сохранить эту модификацию?
Мостафа

Я получаю «ImportError: numpy.core.multiarray не удалось импортировать», когда я делаю это. Какие-либо предложения?
hiquetj

45

Я решил свою проблему, используя следующую команду:

conda install opencv

6
Если у вас установлен Anaconda Python, это команда, которую вы ищете.
kevinmicke

Я попробовал это сегодня в Windows 64-bit 2.7 conda, и получилPackageNotFound error
Mike Wise

2
То, что работало, былоconda install -c https://conda.binstar.org/menpo opencv
Майк Уайз

40

Попробуйте добавить следующую строку в ~/.bashrc

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

2
Спасибо, это сработало для меня, когда использовалось: export PYTHONPATH = / usr / local / python / 2.7: $ PYTHONPATH
Ikbel


21

Ни один из приведенных выше ответов не работал для меня. Я сходил с ума, пока не нашел это решение ниже!

Просто запустите:

sudo apt install python-opencv

14

Для Windows 10 и Python 3.6 это сработало для меня

pip install opencv-contrib-python


1
У меня тоже работал на Linux (Ubuntu 16.04)
FlorianH



7

Я столкнулся с тем же, как эта проблема, я установил CV2

pip install cv2

Однако, когда я импортирую модуль cv2, он не отображал модуль с именем cv2 error.
Затем я искал и находил cv2.pydфайлы на своем компьютере и копировал и вставлял в каталог site-packages

C:\Python27\Lib\site-packages

Затем я закрыл и снова открыл существующее приложение, оно работало.

РЕДАКТИРОВАТЬ Я расскажу, как cv2правильно установить .

1. Сначала установите numpy на свой компьютер

pip install numpy


2. Скачать opencv из интернета (почти 266 мб).
Я скачиваю opencv-2.4.12.exeдля Python 2.7. Затем установите этот файл opencv-2.4.12.exe.
Я извлек C:\Users\harun\Downloadsв эту папку.
После установки зайдите cv2.pyв папки.
Для меня

C:\Users\harun\Downloads\opencv\build\python\2.7\x64

в этой папке возьмите cv2.pydи скопируйте его в

C:\Python27\Lib\site-packages

Теперь вы можете использовать cv2скрипты Python.


Я не думаю, что пакет, cv2установленный через, pipимеет какое-либо отношение openCV, вы подтверждаете?
эпсилон

@Newben извините за поздний ответ. В части редактирования я говорю о том, как правильно установить OpenCV. Я хотел бы, чтобы это помогло вам, если вы не решили проблему
Харун ЭРГУЛ

5

Если хотите установить OpenCV в виртуальной среде. Запустите команду в терминале для получения списка виртуальных сред.

conda env list

или команда ноутбука Jupyter

!conda env list

Тогда обнови свою анаконду.

conda update anaconda-navigator
conda update navigator-updater

Установите opencv в выбранный вами путь среды.

conda install -c ['environment path'] opencv

Блокнот Juypter

!conda install --yes --prefix ['environment path'] opencv

4

Если вы строите из царапины, перейдите через это

Вы получаете No module named cv2.cv. Сынок, ты все сделал правильно, потому что ты не sudo make installдал ошибок.

Однако посмотрите на этот шаг

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

ОЧЕНЬ ВАЖНЫЙ ШАГ ВСЕГО, ЧТОБЫ СДЕЛАТЬ ЭТО.

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

В тот момент, когда вы выбираете разумное связывание или методом грубой силы, просто найдите файл cv2.so, если он существует или нет.

Здесь я выкидываю свой вывод.

    Successfully installed numpy-1.15.3
(cv) demonLover-desktop:~$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ pip list
Package    Version
---------- -------
numpy      1.15.3 
pip        18.1   
setuptools 40.5.0 
wheel      0.32.2 
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ python
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>> 
[2]+  Stopped                 python
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls /usr/local/lib/python2.7/site-packages/c
ls: cannot access '/usr/local/lib/python2.7/site-packages/c': No such file or directory
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls /usr/local/lib/python2.7/site-packages/
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ deactivate 
demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls /usr/local/lib/python2.7/site-packages/
demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls
cv2.so  easy_install.py  easy_install.pyc  numpy  numpy-1.15.3.dist-info  pip  pip-18.1.dist-info  pkg_resources  setuptools  setuptools-40.5.0.dist-info  wheel  wheel-0.32.2.dist-info
demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls /usr/local/lib/python2.7/site-packages/
demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls -l  /usr/local/lib/python2.7/site-packages/
total 0
demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls
cv2.so  easy_install.py  easy_install.pyc  numpy  numpy-1.15.3.dist-info  pip  pip-18.1.dist-info  pkg_resources  setuptools  setuptools-40.5.0.dist-info  wheel  wheel-0.32.2.dist-info
demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ workon cv
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ python
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>> 
[3]+  Stopped                 python
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ find / -name "cv2.so"
find: ‘/lost+found’: Permission denied
find: ‘/run/udisks2’: Permission denied
find: ‘/run/docker’: Permission denied
find: ‘/run/exim4’: Permission denied
find: ‘/run/lightdm’: Permission denied
find: ‘/run/cups/certs’: Permission denied
find: ‘/run/sudo’: Permission denied
find: ‘/run/samba/ncalrpc/np’: Permission denied
find: ‘/run/postgresql/9.5-main.pg_stat_tmp’: Permission denied
find: ‘/run/postgresql/10-main.pg_stat_tmp’: Permission denied
find: ‘/run/lvm’: Permission denied
find: ‘/run/systemd/inaccessible’: Permission denied
find: ‘/run/lock/lvm’: Permission denied
find: ‘/root’: Permission denied
^C
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ sudofind / -name "cv2.so"
sudofind: command not found
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ^C
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ sudo find / -name "cv2.so"
[sudo] password for app: 
find: ‘/run/user/1000/gvfs’: Permission denied
^C
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ sudo find /usr/ -name "cv2.so"
/usr/local/lib/python2.7/dist-packages/cv2.so
^C
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ln -s /usr/local/lib/python2.7/dist-packages/ccv2.so cv2.so
click/                        clonevirtualenv.pyc           configparser-3.5.0.dist-info/ configparser.py               cv2.so                        cycler.py
clonevirtualenv.py            concurrent/                   configparser-3.5.0-nspkg.pth  configparser.pyc              cycler-0.10.0.dist-info/      cycler.pyc
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
ln: failed to create symbolic link 'cv2.so': File exists
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ rm cv2.so 
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ln -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ ls
cv2.so  easy_install.py  easy_install.pyc  numpy  numpy-1.15.3.dist-info  pip  pip-18.1.dist-info  pkg_resources  setuptools  setuptools-40.5.0.dist-info  wheel  wheel-0.32.2.dist-info
(cv) demonLover-desktop:~/.virtualenvs/cv/lib/python2.7/site-packages$ python
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> 

Мой шаг поможет, только если ваша сборка сделана правильно.


Только с помощью @TheExorcist можно решить эту проблему
Родни Сальседо

Рад помочь вам @RodneySalcedo, но грех связывать, мы совершаем бессознательно.
TheExorcist


0

Попробуйте это:

sudo ldconfig

sudo nano /etc/ld.so.conf.d/opencv.conf

и добавьте следующую строку в окне opencv.confне в командной строке

/usr/local/lib

Затем:

sudo ldconfig

sudo nano /etc/bash.bashrc

и добавить эти две строки в bash.bashrcне в командном окне

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig       
export PKG_CONFIG_PATH

наконец перезагрузи свой пи sudo reboot now

и попробуйте import cv2


Не могли бы вы объяснить, почему эти шаги? Как они связаны с cv2?
Кишор Павар

0

Другой способ, которым я получил opencv для установки и работы, был в сообществе visual studio 2017. Visual Studio имеет приятную среду Python с отладкой.
Поэтому из окна env vs python я искал и добавил opencv. Просто подумал, что поделюсь, потому что мне нравится пробовать разные вещи и на разных компьютерах.

VisualStudio2017 Python среды с OpenCV


0

У меня была такая же проблема, но я просто не мог разобраться с opencv2 и opencv3, установленными в / opt / opencv и opencv3 соответственно. Оказалось, что кровавая установка anaconda opencv в моем домашнем каталоге была первой по пути и искалечила opencv. Удалил его и начал использовать / opt / opencv3 / lib, как определено в /etc/ld.so.conf.d/opencv.conf. Работал отлично с первого раза. У вас установлена ​​анаконда? Может быть проблема.

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