属性错误:模块'cv2'没有属性'imread'.

11

我使用的是Mac OS 10.8.5操作系统。

我正在使用Python 3(通过jupyter notebook),并尝试导入cv2

我成功地执行了import cv2,但是当我输入im_g = cv2.imread("smallgray.png", 0)时,出现了以下错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-5eb2880672d2> in <module>()
----> 1 im_g = cv2.imread("smallgray.png", 0)

AttributeError: module 'cv2' has no attribute 'imread'

我也检查了dir(cv2),我得到了以下结果:

['__doc__', '__loader__', '__name__', '__package__', '__path__', '__spec__'

我猜很多功能都缺失了... 这是因为opencv安装出了问题吗? 实际上,我为了得到opencv而奋斗了很久,我猜我通过终端“太多次”和不同的方式进行了安装(brewpip)。
我应该卸载opencv并重新开始吗?我该如何正确地执行此操作?
提前感谢。

4
你有另一个文件叫做 cv2.py 吗? - jonrsharpe
1
我找到了一个名为cv2.so的文件。实际上,我为了获取OpenCV而苦苦挣扎,我猜我安装了它“太多次”。 - Samuel
我曾遇到相同的问题,花了三个小时进行故障排查,最终发现我将正在工作的Python文件命名为cv2.py。 - gokul gupta
17个回答

11

可能是因为您安装方式不正确。我也曾经错误地安装了OpenCV,所以我将其完全卸载,然后重新安装,这样它就可以工作了。

请注意卸载和安装的顺序:

卸载:

pip uninstall opencv-python
pip uninstall opencv-contrib-python

安装:

pip install opencv-contrib-python
pip install opencv-python

1
同时安装OpenCV软件包可能会导致冲突。请勿安装多个变种,它们都包含基本模块。 - Christoph Rackwitz

5
我遇到了这个问题,原因是我的脚本命名为'cv2.py',让我们尝试将其重命名为其他名称。

2
读者可能遇到的问题是安装了错误的库(cv2包)。例如,我安装了opencv-python3而不是opencv-python
因此,如果您使用PyCharm IDE,请转到 文件->设置->项目:*->Python解释器 并查看您在那里列出了什么:

enter image description here

请确保已安装了opencv-python。 如果有其他类似的名称,也应该可以 - 在我的情况下它有效。

如果你卸载了其他包(例如opencv-python3)可能会破坏你的依赖关系,导致再次出现错误。在这种情况下,只需卸载并重新安装opencv-python即可。 - Sold Out

1
如果您将文件命名为“cv2.py”,则可能会出现这种情况。所以当您“import cv2”时,系统会访问您的文件而不是实际的库。因此,请尝试将'cv2.py'重命名为任何其他名称,您的代码应该可以正常工作。

1
我曾经遇到过同样的问题,这个方法最终解决了问题:
from cv2 import cv2
im_g=cv2.imread("smallgray.png", 0)
print(im_g)

0

检查:

brew list | grep opencv

如果未安装,则尝试:

brew install opencv

0

最近在我的代码中出现了相同的问题,但我不知道发生了什么。尝试了不同的方法,如卸载opencv-python

关于我正在使用的文件名,我肯定没有可能因为库的名称而导致崩溃的问题。

我已经删除了opencv-python,清除了所有与包相关的缓存,然后重新安装了opencv-pythonopencv-contrib-python。 现在,它正常工作,我可以说还没有出现任何问题。

P.S 我正在使用Arch Linux。 如果您想知道如何清除缓存,请尝试查看this source。 希望它有所帮助。 不断学习和探索,谢谢!


0

我遇到了类似的问题,在Ubuntu上
我使用以下命令安装了open-cv:

sudo pip3 install opencv-python3

我通过以下方式卸载了OpenCV:

sudo pip3 uninstall opencv-python3

然后使用以下代码重新安装它:

pip3 install opencv-python

0

我也遇到了这个问题。
通过将当前的 cv2.py 更改为 cv.py(除正在使用的包名外,您可以随意命名)来获得解决方案。
一点解释

将当前工作文件保存为 cv2.py 的名称,当我们尝试运行该文件时,它使用 import cv2 语句导入当前文件,而不是实际的 cv2 模块。 这整个过程导致了整个错误。


0
主要问题是您的文件或文件夹名为“cv2”,这在Python中是不允许的。解决方法是更改名称,然后您的代码将能够运行。

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