使用OpenCV时找不到模块cv2


264

我已经在Raspberry Pi上的Occidentalis操作系统(Raspbian的变体)上安装了OpenCV,使用的是在此处找到的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/libpython3.2和python2.6 中也有文件夹,这可能是个问题,但我不确定。

这可能是路径错误吗?感谢您的任何帮助,我是Linux的新手。


3
试试:python --version。如果它表示3.2,那么您会得到一个提示。尝试找到2.7可执行文件,并使用绝对路径进行调用
berak 2013年

3
对于macOS 10.12和python 3,以下简单命令可以解决该错误:pip install opencv-python参考:pypi.python.org/pypi/opencv-python
Tushar

如果您使用的是macOS Catalina,也许可以帮助您stackoverflow.com/a/61578366/11559619
NicolasElPapu

Answers:


345

首先在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 +,请检查以下链接:Link3Link4


7
对于Linux,您应该输入“ pip install opencv-python”或“ sudo pip install opencv-python”
Oz Radiano

12
您输入的命令错误。是的sudo pip3 install opencv-python。另外,对于Linux,您必须像sudo pip3 install opencv-pythonpython 3和sudo pip install opencv-pythonpython 2 一样运行它。如果您进行sudo -iforst或以某种方式作为root用户运行,则不需要在命令开头使用sudo 。
Stiffy2000 '17

2
如果在安装时遇到问题,请确保您拥有最新版本的pip,pip install --upgrade pip这是我的功夫
mrk

4
pip install opencv-python为我工作,但我没有水蟒。仅供大家参考。
tilper


73

当python无法参考您保留了所需python文件或库的默认site-packages文件夹时,就会发生这种情况

在代码中添加以下行:

import sys

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

或在bash中运行python命令之前,移至/usr/local/lib/python2.7/site-packages目录。如果您不想在代码中添加任何内容,则可以解决此问题。


1
您在Windows上工作吗?此路径类似于linux系统。
FavorMylikes '16

1
问题是关于Raspbian OS,即Linux。
Midhun

2
在Mac机上为我工作
桑迪

它适用于一个会话,但是如果我退出并重新启动python,则必须再次执行。如何保存此修改?
Mostafa

执行此操作时,出现“ ImportError:numpy.core.multiarray导入失败”的提示。有什么建议?
hiquetj

45

我使用以下命令解决了我的问题:

conda install opencv

6
如果您已安装Anaconda Python,则这是您要查找的命令。
kevinmicke '16

我今天在Windows 64位2.7 conda环境中尝试了此操作,并获得了PackageNotFound error
Mike Wise

2
做的是conda install -c https://conda.binstar.org/menpo opencv
Mike Wise

40

尝试在其中添加以下行 ~/.bashrc

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

2
谢谢,它在使用时对我有用:export PYTHONPATH = / usr / local / python / 2.7:$ PYTHONPATH
Ikbel 2015年


21

上面的答案对我都不起作用。我一直在疯狂,直到我在下面找到了这个解决方案!

只需运行:

sudo apt install python-opencv

14

对于Windows 10和Python 3.6,这对我有用

pip install opencv-contrib-python


1
在Linux(Ubuntu 16.04)上也为我工作过
FlorianH


9

我通过运行来解决:

pip3 install opencv-python

7

我遇到了与此问题相同的问题,我通过安装了cv2

pip install cv2

但是,当我导入cv2模块时,它没有显示名为cv2错误的模块。
然后,我cv2.pyd在计算机中搜索并找到文件,然后将其复制并粘贴到site-packages目录中

C:\Python27\Lib\site-packages

然后我关闭并重新打开了现有的应用程序,它起作用了。

编辑 我会告诉你如何安装cv2正确。

1.首先通过以下方式在计算机上安装numpy:

pip install numpy


2.从互联网(将近266 mb)下载opencv
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安装的软件包pipopenCV您无关吗?
epsilones

@Newben对不起您的回复。在编辑部分,我谈论如何正确安装opencv。我希望如果您没有解决问题,它将对您有所帮助
Harun ERGUL,2016年

5

如果要在虚拟环境中安装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

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的帮助才能解决此问题
Rodney Salcedo

很高兴为您提供@RodneySalcedo,但链接时犯了罪,我们无意识地承诺。
TheExorcist's


0

试试看:

sudo ldconfig

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

opencv.conf在命令窗口的not中添加以下行

/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


您能否解释为什么要执行这些步骤?它们与cv2有何关系?
Kishor Pawar

0

我安装和工作opencv的另一种方法是在Visual Studio 2017社区内部。Visual Studio具有一个不错的带有调试功能的python环境。
因此,从vs python env窗口中,我搜索并添加了opencv。只是想我会分享,因为我喜欢以不同的方式在不同的计算机上尝试。

使用OpenCV的VisualStudio2017 Python环境


0

我有同样的问题,只是无法通过分别安装到/ opt / opencv和opencv3中的opencv2和opencv3来解决。原来,在我的主目录中,血腥的anaconda安装的opencv首先出现在路径上,并且破坏了opencv。删除它,并使用/etc/ld.so.conf.d/opencv.conf中定义的/ opt / opencv3 / lib开始。第一次工作完美。您安装了蟒蛇吗?可能是问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.