属性错误:模块'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个回答

0

在vscode上使用cv2时,我遇到了这个问题,但是什么都没用。后来发现我把文件命名为"cv2.py",所以它在导入自己。

"通常,Python循环导入问题会在您意外地将工作文件命名为模块名称并且这些模块彼此依赖时出现。这样,Python打开相同的文件,导致循环往复,并最终引发错误。"


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0

0
这发生在我身上一次,当我通过“另存为”复制文件时。我删除第二个文件后,问题自行解决。

0

我个人不得不卸载所有与opencv有关的先前安装:

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

然后我删除了与opencv相关的所有site-package中的文件。 卸载后,类似于 opencv_contrib_python-4.6.0.66.dist-info 的与opencv相关的文件仍然存在,导致错误。

删除所有这些文件后,我重新安装了opencv:

pip install opencv-python

现在它对我有效


同时安装不同变体的opencv-python包(base+contrib vs. base)可能会发生冲突。这是个坏主意 - Christoph Rackwitz

0
去site_package目录并删除所有的cv和opencv包。 然后运行"pip install opencv-python"。

1
请详细说明您的建议如何改进共识答案 https://stackoverflow.com/a/64658815/12846804 - undefined

-1

使用cv2.cv2.imread()

这个方法在大多数情况下都可以正常工作。另外,你也可以在这里查看更多信息。


1
我尝试了一下,这是我得到的结果:`--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-13-5eb2880672d2> in <module>() ----> 1 im_g = cv2.imread("smallgray.png", 0)AttributeError: module 'cv2' has no attribute 'imread'`我还尝试将 /site packages/cv2/ 中的 cv2.so 重命名为 cv2.py,但仍然出现相同的错误。 - Samuel
@lotusam,请再试一次安装。 - lucians

-1

也许您刚刚安装了opencv-contrib-python而没有安装opencv-python

可以尝试以下方法,这对我有用:

  1. 先卸载:
pip uninstall opencv-python
pip uninstall opencv-contrib-python
  1. 然后安装:
pip install opencv-contrib-python==3.4.2.16
pip install opencv-python==3.4.2.16

你可以参考这里


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