PYTHON

[pylint] E1101:Module 'cv2' has no 'imread' member 에러 해결

24_bean 2023. 3. 21. 19:57

vscode 환경 아래 PEP-8을 위해 대부분 linting을 사용한다.

* 해당 글은 pylint 사용자를 위한 포스트 *

 

OpenCV 사용 시 다음과 같은 에러가 표시되는 걸 볼 수 있는데,

 

[pylint] E1101:Module 'cv2' has no 'imread' member

 

이는, OpenCV작성 시 사용된 C를 pylint가 이해하지 못하기 때문에 생기는 에러다.

 

문제해결 방법이 이미 stackoverflow에 잘 나와있지만, 좀 더 쉬운 접근법을 적용해보자.

 

 

1. Settings

 

 

2. pylint 검색

 

 

3. Pylint: Args Add item

 

* --generate-members

* "python.linting.pylintArgs": ["--extension-pkg-whitelist=cv2"]

 

적용

 


 

 

 

위의 whitelist flag를 통해 openCV(cv2) 모듈의 AST(Abstract Syntax Tree)를 불러올 수 있고, 결과적으로 모듈을 에러없이 import 할 수 있다.

 

물론, settings.json을 수정하는 방법을 통해서도 가능하지만 소개한 방법이 조금 더 직관적일듯 싶다

 

참고:

https://github.com/PyCQA/pylint/issues/2426

 

cv2 module members are not recognized · Issue #2426 · PyCQA/pylint

When importing cv2 I get errors such as: [pylint] E1101:Module 'cv2' has no 'imread' member [pylint] E1101:Module 'cv2' has no 'resize' member [pylint] E1101:Module 'cv2' has no 'imshow' member [py...

github.com