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

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

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

[email protected]~$ 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.

Ответ 1

Сначала выполните эти команды внутри Terminal/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

Ответ 2

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

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

import sys

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

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

Ответ 3

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

conda install opencv

Ответ 4

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

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

Ответ 5

Пользователь Python3.x

sudo pip3 install opencv-python

Ответ 6

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

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

sudo apt install python-opencv

Ответ 7

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

pip install opencv-python

Ответ 8

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

pip install cv2

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

C:\Python27\Lib\site-packages

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

EDIT Я расскажу, как правильно установить 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.

Ответ 9

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

conda env list

или команда jupyter notebook

!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

Ответ 10

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

Вы не получили 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
>>> 

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

Ответ 11

Попробуйте следующее:

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

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

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

Ответ 12

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

Ответ 13

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

VisualStudio2017 python environments with opencv

Ответ 14

Я решаю это с помощью кода запуска pip install opencv_contrib_python