[컴][파이썬] Visual Studio Code 의 python lint 설정




IDE : Visual Studio Code 1.8.1
OS : Windows 10


visual studio code 에서 pylint 설정하기

python extension 를 사용하면, pylint 를 사용할 수 있다.
python lint 에 관한 설정은 대부분 user settings (또는 workspace settings) 에서 python.linting 을 찾으면 확인할 수 있다. python.linting 에 관한 내용은 ref. 1 을 참고하자.

pylint on/off

기존 설정은 on 으로 되어 있다. 이것을 끄려면 user settings 를 열어서(Preferences > Open User Settings) 아래 설정을 꺼주면 된다.

"python.linting.enabled": false,

pylint path 설정

virtualenv 를 사용할 때 pylint 는 기존의 python 의 pylint 를 사용하게 된다. 이럴 때 User Settings 에서 pylint 의 path 를 아래 처럼 설정해 주면 된다.

"python.linting.pylintPath": "c:\\Program Files\\Python34\\Scripts\\pylint.exe",

또는 %Path% 에 "c:/Program Files/Python34/Scripts/" 를 넣어 놔도 된다.

import error 문제

참고로 이경우에 문제는 import 부분이 제대로 검사되지 못한다. 즉 알맞은 import 인데도, error 를 띄우게 된다.

이것은 ref. 3 에 관련 해결책이 나와있다.
해결 방법은 .pylintrc 의 init-hook 에 path 를 추가해주면 된다.
init-hook='import sys; sys.path.append("c:/a/programming/python/spider_blogupdater/src");
sys.path.append("c:/a/envs/spider3/Lib/site-packages");
sys.path.append("c:/a/envs/spider3/Lib")'


pylintArgs

간단한 설정은 pylintArgs 에 command line option 을 추가하는 것으로 사용할 수 있다. command line option 은 ref. 2 를 참고하자.
"python.linting.pylintArgs": []

.pylintrc

pylintrc 또는 .pylintrc 파일을 workspace 에 넣으면 된다.(root 에 넣으면 된다.)

기본적으로 아래 option 이 true 이기 때문에, text 를 수정하고 save 를 해서 lint 를 실행시켜 보면 잘 적용됐는 지 확인할 수 있다.
"python.linting.lintOnTextChange": true,

// Whether to lint Python files when saved.
"python.linting.lintOnSave": true,

.pylintrc file 만들기

아래처럼 하면, .pylintrc 를 만들 수 있다. 이렇게 만든 .pylintrc 에서 disable 부분을 찾아서 필요한 부분을 disable 시키면 된다.
c:..> pylint --generate-rcfile > .pylintrc

개인적으로 Info (Convention) 부분만 disable 시키는 option 을 사용한다.
disable=C

.pylintrc 예시


See Also

.style.yapf
[style]
align_closing_bracket_with_visual_indent=true
blank_line_before_nested_class_or_def=true
column_limit=80
continuation_indent_width=4
dedent_closing_brackets=true
indent_dictionary_value=false
indent_width=4
join_multiple_lines=true
spaces_before_comment=2
space_between_ending_comma_and_closing_bracket=true
split_before_bitwise_operator=false
split_before_logical_operator=false
split_before_named_assigns=true
split_penalty_after_opening_bracket=30
split_penalty_after_unary_operator=10000
split_penalty_bitwise_operator=300
split_penalty_excess_character=2500
split_penalty_for_added_line_split=50
split_penalty_import_names=0
split_penalty_logical_operator=300


References




댓글 3개:

  1. 고맙습니다~!

    답글삭제
  2. import error 문제에대한 설명이 이해가 안가는데,
    저내용을 어디에 추가 하면 되는건가요?

    답글삭제
    답글
    1. .pylintrc 안에 적어주면 됩니다.

      삭제