Programming/Python

VS Code에서 pylint 세팅으로 불 필요한 경고 제거

Makuri 2021. 4. 20. 00:41
728x90

나는 Pycharm 안 쓰고 VS code로 파이썬 개발을 한다.

IDE를 여러 개 쓰는게 귀찮다보니 그런건데, 인간이 다 그렇든 야매로 원하는 걸 다 하고 싶더라.

 

VS Code로 파이썬 인텔리젼트를 쓰고 싶으니 확장을 사용한다.

 

1.VS code에서 확장으로 Python을 검색한다.

2. Microsoft의 Python을 설치한다.

3. Python 확장을 설치하면 Jupyter하는 확장은 알아서 같이 설치된다.

4. Python 정적 검사도구로 pylint 설치 요청이 오른쪽 하단에 팝업으로 나온다. 설치를 눌러주면 알아서 pip로 설치한다.

 

pylint 를 통해 VS에서 사용하는 인텔리전트나 어시스트처럼 파이썬 문법 검사와 함께 정적분석을 함께 한다.

그런데 이 정적분석이 별다른 설정이 없으면 굳이 안알려줘도 되는 경고도 밑줄을 그어버려서 거슬린다.

 

VS C++에서 #warning(disable:XXXX)이나 프로젝트 속성의 /wd 처럼 특정 경고를 지우는 법이 있다.

이게 이 글의 주제다.

 

나는 Mac이 없으니 Windows 기준으로 작성한다. 심지어 한글 확장을 설치했으니 한글 메뉴로 적을거다.

 

1. VS Code에서 'Ctrl + ,' 를 눌러서 설정을 열고 우상단의 '설정 열기JSON'를 클릭한다.

2. 그러면 settings.json 이 열린다. JSON 형식에 맞게 다음 옵션을 추가한다.

	"python.linting.pylintEnabled": true,
	"python.linting.pylintArgs": [
        "--disable=W0401",
        "--disable=C0111"
    ]

"python.linting.pylintEnabled"true, 은 보다시피 pylintEnabled 활성 여부를 적는 거고,

"python.linting.pylintArgs" 는 설정 인자 값이다. list 형식으로 하면 여러 개 쓸 수 있다.

예시에는 --disable이 2개가 추가되어있는데 각각 다음과 같다.

wildcard-import (W0401):

Wildcard import %sUsed whenfrom module import *is detected. (import * 로 임포트 하는 경우 검사)

 

missing-docstring (C0111):

Missing %s docstringUsed when a module, function, class or method has no docstring.Some special methods like __init__ doesn’t necessary require a docstring. (__init__같은 경우에는 docstring을 안쓰는데 %s를 안 쓴 경우?)

 

 

거슬리는 검사를 지우고 싶으면, VS Code에서 밑줄 뜬 곳에 커서를 대면

이렇게 줄줄이 나오는데, pylint(~~)에 해당하는 검사를 아래 링크에서 검색하면 된다.

unused-wildcard-import 는 W0614이다.

pylint.pycqa.org/en/latest/technical_reference/features.html

 

Pylint features — Pylint 2.8.0.dev1 documentation

Disable the message, report, category or checker with the given id(s). You can either give multiple identifiers separated by comma (,) or put this option multiple times (only on the command line, not in the configuration file where it should appear only on

pylint.pycqa.org

찾은 코드를 "python.linting.pylintArgs" 의 값으로 추가해주면 된다.

    "python.linting.pylintArgs": [
        "--disable=W0401",
        "--disable=C0111",
        "--disable=W0614"
    ]

 

덤으로 --disable이 있으니 당연히 --enable 도 있다.

위 링크에 disable에 대한 설명을 보면 Default로 설정된 검사들이 있다. 이걸 제외한 검사를 살리고 싶을 때 쓰면 된다.

그리고 enable / disable이 귀찮으면 confidence 으로 경고 레벨을 설정할수도 있다. 위 링크 참고.

728x90