使用OpenCV时找不到模块cv2。

442

我已经在树莓派上的Occidentalis操作系统(Raspbian的一个变体)上使用jayrambhia的此脚本安装了OpenCV,它安装了版本2.4.5。

当我在Python程序中尝试import cv2时,我收到以下消息:

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.2python2.6的文件夹,如果相关的话。

我该如何解决这个问题?这是由路径配置错误引起的吗?


3
尝试输入命令:python --version。如果输出为3.2,则表示你已经有了一个提示。请尝试找到2.7版本的可执行文件,并使用绝对路径来调用它。 - berak
4
对于 macOS 10.12 和 Python 3,以下简单命令可用于解决错误:pip install opencv-python 参考链接:https://pypi.python.org/pypi/opencv-python - Tushar
如果您正在使用macOS Catalina,也许这可以帮助您 https://stackoverflow.com/a/61578366/11559619 - NicolasElPapu
1
pip install opencv-python==4.6.0.66 - DanielBell99
我的解决方案(花了2个小时!!!)是将文件cv2.pyd(从Python文件夹中)复制到C:\ProgramData\Anaconda3\Lib\site-packages不知道它是如何工作的。有时候你不仅要按照官方指示去做,还要在Python/pip和Anaconda/conda中进行类似的操作。我在尝试安装Tensorflow时已经遇到过这个问题了。 - undefined
26个回答

546

首先在终端/命令提示符中运行以下命令:

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 

Link1 Link2

对于Python3.5+,请查看以下链接:Link3Link4

更新:
如果您使用Anaconda,则可以使用此方法(因此不需要添加menpo渠道):

conda install -c conda-forge opencv

9
对于Linux系统,您应该键入“pip install opencv-python”或“sudo pip install opencv-python”进行安装。 - Oz Radiano
26
你的命令输入有误。正确的命令是“sudo pip3 install opencv-python”。针对Linux系统,你需要在Python 3下运行“sudo pip3 install opencv-python”,在Python 2下运行“sudo pip install opencv-python”。如果你已经使用“sudo -i”或以root用户身份运行,则不需要在命令开头加上“sudo”。 - E.T.
2
如果在安装过程中遇到问题,请确保您拥有最新版本的pip pip install --upgrade pip,这是我的建议。 - mrk
4
pip install opencv-python 对我来说可行,而且我没有安装Anaconda。这只是给其他遇到同样问题的人提供信息。 - user6096242
4
不应使用sudo pip install在sudo下运行pip install是否可接受和安全?。这被scipypython.org推荐。 - phuclv
显示剩余7条评论

95

当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
4
问题是关于Raspbian操作系统的,它是Linux系统。 - Midhun
3
在我的Mac电脑上运行成功。 - sandy
当我这么做时,我会收到“ImportError: numpy.core.multiarray failed to import”的错误提示。有什么建议吗? - hiquetj
谢谢,但是为什么会发生这种情况? - Cypher
显示剩余2条评论

64

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

conda install opencv

12
如果您已经安装了Anaconda Python,那么您需要寻找的命令是这个。 - kevinmicke
我今天在Windows 64位2.7 conda环境中尝试了这个,但出现了“PackageNotFound错误”。 - Mike Wise
2
有效的做法是 conda install -c https://conda.binstar.org/menpo opencv - Mike Wise
pip install opencv-python==4.6.0.66 - DanielBell99

47
尝试在~/.bashrc中添加以下行:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

2
谢谢,当我使用以下命令时它对我有用:export PYTHONPATH=/usr/local/python/2.7:$PYTHONPATH - Ikbel

39

Python3.x 用户

sudo pip3 install opencv-python

https://askubuntu.com/questions/802544/is-sudo-pip-install-still-a-broken-practice - Gulzar
我也试过了,谢谢!(cuda 2204,cudnn 8.5.0,python 3.10.3) - Sergiy Tupikin

36

对于Windows 10和Python 3.6,以下步骤适用:

pip install opencv-contrib-python


1
在我的 Linux(Ubuntu 16.04)上也有效。 - FlorianH
1
这也解决了我在Ubuntu上的问题。 - roschach

28

以上的答案都没有对我起作用,让我感到很疯狂,直到我找到了下面这个解决方案!

只需运行:

sudo apt install python-opencv

1
在Ubuntu 20及未来的其他版本中,可以使用sudo apt install python3-opencv安装Python3-OpenCV。 - Tõnu Samuel
2
显示错误:E: 无法定位软件包python-opencv - Shurvir Mori

27
pip install opencv-python
或者
pip install opencv-python3 

一定会很好地运作。


23

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

pip install opencv-python

16

我通过运行以下命令解决了这个问题:

pip3 install opencv-python

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接