属性错误:模块'cv2'没有属性'VideoCapture'。

3

我在使用Python的Opencv时遇到了一些问题。

这个属性问题也会发生在imread中。

我尝试通过安装contrib-Opencv来卸载并重新安装,但是它没有起作用。

大约两个月前,我的opencv文件仍然工作正常,但我不知道为什么现在它不工作了。

在下一次重新安装中,这个命令总是执行,但没有好的结果。

import cv2
cap = cv2.VideoCapture(0)
...
cap.release()

我的错误命令:

Traceback (most recent call last):
  File "C:\Users\Hoang Cao Chuyen\Documents\pyml\cv11.py", line 4, in <module>
    cap = cv2.VideoCapture(0)
AttributeError: module 'cv2' has no attribute 'VideoCapture'
[Finished in 0.2s with exit code 1]
[shell_cmd: python -u "C:\Users\Hoang Cao Chuyen\Documents\pyml\cv11.py"]

嘿,请将您的代码复制到问题中,而不是包含截图。 - Theodor Peifer
如果您使用print(cv2.version),它会打印什么? - Doch88
另一个问题:你是如何安装OpenCV的?你使用了什么命令? - Doch88
@ChuyênHoàng print(cv2.__version__) 的输出是什么?你尝试过使用 python -m pip install opencv-python 安装opencv吗? - Doch88
当我愚蠢地将一个文件命名为“copy.py”时,我也遇到了同样的问题,请确保您的文件名不是Python内置保留字。 - akiva
显示剩余2条评论
7个回答

6

我注意到的一个问题是你将cv11用作main.py的名称。

如果你有一个文件保存为cv2.py,PyCharm很容易会混淆。请检查是否有其他类似名称为cv2的文件。

否则,请尝试以下操作:

  1. 移除OpenCV。
  2. 使用命令pip install opencv-contrib-python重新安装。

或者

尝试重新安装ffmpeg,因为它可能是其中一个问题。

pip install ffmpeg-python

1
我尝试按照您的建议卸载,但仍然出现错误。 - Chuyên Hoàng
您能否在问题中分享完整的错误代码,以便更多人了解错误细节并帮助您。 - seraph
我添加了一张图片来说明我的错误,因为我无法在此处添加太长的评论。 - Chuyên Hoàng
@ChuyênHoàng,你确定你电脑上没有其他名为“cv2.py”的文件(除了OpenCV的那个)吗? - Doch88
是的,我按照你说的再次检查了路径。没有 vv2.py 文件。 - Chuyên Hoàng
显示剩余2条评论

2
问题在于您的文件名为cv2.py,因此它会导入自身并出现错误,这可以从此行理解。
很可能是由于循环导入引起的问题。
为了解决问题,请将文件重命名。

1
添加这两行代码:
from cv2 import VideoCapture
from cv2 import waitKey

0

解决所有OPENCV-PYTHON问题的最佳方法是卸载并重新安装它。

我也遇到了同样的问题。

我通过以下方式解决:

python -m pip uninstall Opencv-python

然后我使用较低版本重新安装它。但不幸的是,我不知道opencv的版本;所以您可以使用小技巧运行以下命令来获取它:

python -m pip install opencv-python==

你会得到一个类似于这样的错误:

.45, 3.4.13.47, 3.4.15.55, 3.4.16.57, 3.4.16.59, 3.4.17.61, 3.4.17.63, 4.3.0.38, 4.4.0.40, 4.4.0.42, 4.4.0.44, 4.4.0.46, 4.5.1.48, 4.5.3.56, 4.5.4.58, 4.5.
4.60, 4.5.5.62, 4.5.5.64)
ERROR: No matching distribution found for opencv-python==

在这里,您可以看到所有版本的opencv-python;选择任何一个(但不是最新的,因为错误是由最新版本的opencv-python引起的)。使用以下命令进行安装:

pip install opencv-python==3.4.17.61 (您可以选择您需要的版本,但这个版本已经解决了我的问题)

然后就可以享受编程的乐趣了...

即使是opencv-python中的自动完成错误也会得到解决。


0

向我的朋友询问后,我得到了解决方案。这很容易,因为我将此文件保存在用户文档路径下,该路径使用我的私人名称Hoang Cao Chuyen而没有“_”符号。我更改了路径,然后它就可以正常工作了。


0

我在Python 3.9.2中遇到了opencv-python-4.7.0.72的问题。

删除所有与opencv相关的库,然后重新安装。如果需要,可以删除虚拟环境,然后创建虚拟环境并安装opencv。

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

安装

pip install opencv-python

0

我曾经遇到同样的问题,寻找了很长时间。最终我找到了一种方法,目前(至少)对我有效。

在安装opencv时,会有一个名为“cv2”的文件夹,其中包含“cv2”包。

安装目录:C:\Users\user\AppData\Local\Programs\Python\Python39\Lib\cv2 包目录:C:\Users\user\AppData\Local\Programs\Python\Python39\Lib\cv2\cv2

安装后的目录


可能这会导致Python混淆(可能是某些循环导入之类的问题)。因此,我只需将安装目录重命名为其他名称,例如C:\Users\user\AppData\Local\Programs\Python\Python39\Lib\cv2_

重命名后的目录

这是目前(并希望将来也是)对我有效的解决方案。


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