为什么 Pylint 告诉我“模块 cv2 没有成员”?

7 python opencv pylint

我不断收到 pylint 错误:

模块“cv2”没有“某物”成员

我的 cv2 模块不起作用。

我不知道为什么;据我所知我安装正确。我什至卸载并重新安装了大约20次。

当我打印出 python lib 中的模块时,会打印 cv2 ;其功能打印正确。我正在使用 python 3.6.6 并且没有安装其他版本的 python。

例如,此代码将打印:“图像是相同的”,无论我提供什么图像,因为 2 个图像将始终等于“无”。

import cv2
import numpy as np

image1 = cv2.imread("1.jpg")
image2 = cv2.imread("2.jpg")

difference = cv2.subtract(image1, image2)

result = not np.any(difference) #if difference is all zeros it will return False

if result is True:
    print ("The images are the same")
else:
    cv2.imwrite("result.jpg", difference)
    print ("the images are different")
Run Code Online (Sandbox Code Playgroud)

有人知道发生了什么事吗?

lai*_*jay 6

如果您不想添加更多配置,请将此代码添加到您的配置文件中,而不是“白名单”。

{
"python.linting.pylintArgs": ["--generate-members"],
}
Run Code Online (Sandbox Code Playgroud)

相关问题:how-do-i-get-pylint-to-recognize-numpy-member


小智 5

我有同样的问题。我的设置是 Python 3.6.6 64 位 AMD 我的 IDE 是 Visual Studio Code 1.46.1

我的研究引导我访问https://answers.opencv.org/question/200869/e1101module-cv2-has-no-imread-member/。上面链接的页面上的评论之一表示将导入语句替换为以下格式之一:

from cv2 import cv2
Run Code Online (Sandbox Code Playgroud)

保存更改并允许重新加载 linter。中提琴!错误消失。

如果这有帮助,请标记为答案(我知道这个问题已经有一段时间被问到了)。

干杯。


krf*_*lol 0

如果您浏览该包,您将找到此目录

yourpythondir\Lib\site-packages\cv2
Run Code Online (Sandbox Code Playgroud)

cv2 目录不存在,因此它没有__init__.py. 导入包后,Linting 应该可以在 python 控制台中工作,但可能不能在文本编辑器中工作