Impossibile trovare il modulo cv2 quando si utilizza OpenCV


264

Ho installato OpenCV sul sistema operativo Occidentalis (una variante di Raspbian) su un Raspberry Pi, usando lo script di jayrambhia trovato qui . Ha installato la versione 2.4.5.

Quando provo import cv2in un programma Python, ricevo il seguente messaggio:

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

Il file cv2.soè archiviato in/usr/local/lib/python2.7/site-packages/...

Ci sono anche cartelle in /usr/local/libpython3.2 e python2.6, che potrebbero essere un problema ma non ne sono sicuro.

È forse un errore di percorso? Qualsiasi aiuto è apprezzato, sono nuovo di Linux.


3
prova: python --version. se dice 3.2, allora hai un suggerimento. prova a localizzare il file eseguibile 2.7 e chiamalo con un percorso assoluto
berak

3
Per macOS 10.12 e python 3 il semplice comando seguente ha funzionato per risolvere l'errore: pip install opencv-python Consultare: pypi.python.org/pypi/opencv-python
Tushar

Se si utilizza MacOS Catalina, forse questo può aiutare a stackoverflow.com/a/61578366/11559619~~V~~singular~~2nd
NicolasElPapu

Risposte:


347

Per prima cosa esegui questi comandi all'interno di Terminal / CMD:

conda update anaconda-navigator  
conda update navigator-updater  

quindi il problema per le istruzioni di seguito verrà risolto

per Windows se hai installato anaconda, puoi semplicemente farlo

pip install opencv-python

o

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

se sei su linux puoi fare:

pip install opencv-python

o

conda install opencv 

Link1 Link2

Per python3.5 + controlla questi collegamenti: Link3 , Link4


7
per Linux dovresti digitare 'pip install opencv-python' o 'sudo pip install opencv-python'
Oz Radiano,

12
Hai sbagliato il comando. Lo è sudo pip3 install opencv-python. Inoltre, per Linux, è necessario eseguirlo come sudo pip3 install opencv-pythonper python 3 e sudo pip install opencv-pythonper python 2. Non è necessario il sudo all'inizio del comando se si esegue sudo -iforst o si esegue come root in qualche modo.
Stiffy2000,

2
In caso di problemi durante l'installazione, assicurati di avere la versione più recente di pip, pip install --upgrade pipquesta era la mia wattle
mk

4
pip install opencv-pythonfunziona per me e non ho Anaconda. Cordiali saluti per chiunque venga qui.
piastrellista


73

Ciò accade quando python non può fare riferimento alla cartella predefinita dei pacchetti del sito in cui sono stati conservati i file o le librerie python richiesti

Aggiungi queste righe nel codice:

import sys

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

o prima di eseguire il comando python in bash passare alla directory /usr/local/lib/python2.7/site-packages . Questa è una soluzione se non vuoi aggiungere nulla al codice.


1
Stai lavorando su Windows? Questo percorso assomiglia al sistema Linux.
FavorMylikes,

1
la domanda riguardava il sistema operativo Raspbian, che è Linux.
Midhun,

2
Ha funzionato per me su mac machine
sandy

funziona per una sessione, ma se esco e riavvio Python, devo farlo di nuovo. come salvare questa modifica?
Mostafa,

Ottengo "ImportError: numpy.core.multiarray non è riuscito a importare" quando lo faccio. Eventuali suggerimenti?
hiquetj,

45

Ho risolto il mio problema usando il seguente comando:

conda install opencv

6
Se hai installato Anaconda Python, questo è il comando che stai cercando.
kevinmicke,

L'ho provato oggi su un ambiente conda 2.7 a 64 bit di Windows e ho ricevuto unPackageNotFound error
Mike Wise il

2
Quello che ha funzionato è statoconda install -c https://conda.binstar.org/menpo opencv
Mike Wise il

40

Prova ad aggiungere la seguente riga in ~/.bashrc

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

2
Grazie, ha funzionato per me quando usato: export PYTHONPATH = / usr / local / python / 2.7: $ PYTHONPATH
Ikbel


21

Nessuna delle risposte sopra ha funzionato per me. Stavo impazzendo fino a quando non ho trovato questa soluzione qui sotto!

Esegui semplicemente:

sudo apt install python-opencv

14

Per Windows 10 e Python 3.6, questo ha funzionato per me

pip install opencv-contrib-python


1
Ha funzionato anche per me su Linux (Ubuntu 16.04)
FlorianH il

13

Ho risolto il mio problema usando il seguente comando:

pip install opencv-python

9

Lo risolvo eseguendo:

pip3 install opencv-python

7

Mi sono imbattuto nello stesso problema in cui ho installato cv2

pip install cv2

Tuttavia, quando importare il modulo cv2, non viene visualizzato alcun modulo denominato errore cv2.
Quindi ho cercato e trovato cv2.pydfile nel mio computer e ho copiato e incollato nella directory dei pacchetti del sito

C:\Python27\Lib\site-packages

poi ho chiuso e riaperto l'applicazione esistente, ha funzionato.

EDIT Dirò come installare cv2correttamente.

1. Innanzitutto installa numpy sul tuo computer con

pip install numpy


2. Scarica opencv da internet (quasi 266 mb).
Download opencv-2.4.12.exeper Python 2.7. Quindi installare questo file opencv-2.4.12.exe.
Ho estratto C:\Users\harun\Downloadsin questa cartella.
Dopo l'installazione vai a cercarecv2.py nelle cartelle.
Per me

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

in questa cartella prendere ilcv2.pyd e copiarlo nel

C:\Python27\Lib\site-packages

ora puoi usare cv2in te script Python.


Non credo che il pacchetto cv2installato pipabbia qualcosa a che fare con openCV, confermi?
epsilones,

@Newben scusa per la risposta in ritardo. nella parte EDIT parlo di come installare correttamente opencv. vorrei che ti aiutasse se non hai risolto il problema
Harun ERGUL

5

Se si desidera installare opencv in ambiente virtuale. Eseguire il comando nel terminale per ottenere l'elenco di ambienti virtuali.

conda env list

o il comando jupyter notebook è

!conda env list

Quindi aggiorna la tua anaconda.

conda update anaconda-navigator
conda update navigator-updater

Installa opencv nel percorso dell'ambiente selezionato.

conda install -c ['environment path'] opencv

Notebook Juypter

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

4

SE STAI COSTRUENDO DA SCRATCH, VAI QUESTO

Hai capito No module named cv2.cv. Figlio, hai fatto tutto bene, sudo make installdato che non hai dato errori.

Tuttavia, guarda questo passaggio

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

IL PASSO MOLTO IMPORTANTE DI TUTTI QUESTI È COLLEGARLO.

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

Nel momento in cui scegli un collegamento saggio, o con la forza bruta, trova il file cv2.so se esiste o no

Qui sto lanciando la mia uscita.

    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
>>> 

Il mio passo sarà di aiuto solo se il tuo build è fatto bene.


Solo con l'aiuto di @TheExorcist è stato possibile risolvere questo problema
Rodney Salcedo,

Sono felice di aiutarti @RodneySalcedo, ma è un peccato durante il collegamento, ci impegniamo inconsciamente.
esorcista

2

Risolvo questo con il codice di esecuzione pip install opencv_contrib_python


0

Prova questo:

sudo ldconfig

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

e aggiungi questa riga seguente nella opencv.conffinestra non nella finestra di comando

/usr/local/lib

Poi:

sudo ldconfig

sudo nano /etc/bash.bashrc

e aggiungi queste due righe nella bash.bashrcfinestra non nella finestra di comando

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

finalmente riavvia il tuo Pi sudo reboot now

e prova import cv2


Puoi spiegare perché questi passaggi? In che modo sono correlati a cv2?
Kishor Pawar,

0

Un altro modo in cui ho avuto l'opencv da installare e lavorare era all'interno della comunità di Visual Studio 2017. Visual Studio ha un bel ambiente Python con debug.
Quindi dalla finestra di vs python env ho cercato e aggiunto opencv. Ho pensato di condividere perché mi piace provare le cose in modi diversi e su computer diversi.

VisualStudio2017 ambienti Python con OpenCV


0

Ho avuto lo stesso problema, ma non sono riuscito a capirlo con opencv2 e opencv3 installati rispettivamente in / opt / opencv e opencv3. Si è scoperto che la sanguinosa installazione di anaconda di opencv nella mia directory home è stata la prima a essere avviata e ha distrutto l'opencv. Rimosso e iniziato usando / opt / opencv3 / lib come definito in /etc/ld.so.conf.d/opencv.conf. Ha funzionato perfettamente per primo. Hai installato anaconda? Potrebbe essere il problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.