Pylint 사용법


Pylint 사용법
Python 정적분석 도구인 pylint 사용법에 대해서 설명드립니다. 예제 소스코드를 이용하여 Python 코딩 스타일을 검사하고 수정하는 방법과 vim 등의 에디터와 통합하여 사용하는 방법을 함께 설명드리도록 하겠습니다.

Pylint 설치

우분투 또는 데비안 계열의 운영체제일 경우 apt 명령어로 pylint 패키지를 설치 할 수도 있습니다.

$ sudo apt install pylint

그리고 운영체제에 상관 없이 pip 명령어로 다음과 같이 pylint 패키지를 설치 하실 수도 있습니다.

$ pip install pylint

Pylint 사용법

pylint 에서 검사하는 코딩 규칙은 Python의 PEP8 스타일 가이드를 따릅니다. 스타일 가이드와 관련된 내용은 아래의 페이지를 참고하실 수 있습니다.

https://www.python.org/dev/peps/pep-0008/

예제를 통해서 어떻게 코딩 스타일을 검사하는제 설명드리도록 하겠습니다. 다음과 같은 예제 소스코드를 작성합니다.

for i in range(1, 10):
    for j in range(1, 10):
        print ("{} * {} = {}".format(i, j, i*j))
    if j == 9:
        print ("")

pylint 를 이용하여 코딩 스타일을 검사하기 위해서는 다음 명령어를 실행합니다.

$ pylint [filename]
Pylint 사용법

pylint 실행 결과 3개의 코딩 규칙 오류가 발생한 것을 확인 할 수 있습니다. 발생한 오류 내용은 아래와 같습니다.

  • No space allowed before bracket : 함수이름인 print 다음에 공백이 있으면 안됩니다.
  • Missing module docstring (missing-docstring) : 모듈을 설명하는 내용이 없습니다.

수정된 코드와 함께 다시 실행된 pylint 결과는 다음과 같습니다.

"""
pylint example
"""
for i in range(1, 10):
    for j in range(1, 10):
        print("{} * {} = {}".format(i, j, i*j))
    if j == 9:
        print("")
Pylint 사용법

파일 수정 전, 후 비교 내용은 다음과 같습니다.

--- a.py    2019-07-23 19:43:24.293835253 +0900
+++ b.py    2019-07-23 19:47:41.180592076 +0900
@@ -1,5 +1,8 @@
+"""
+pylint example
+"""
 for i in range(1, 10):
     for j in range(1, 10):
-        print ("{} * {} = {}".format(i, j, i*j))
+        print("{} * {} = {}".format(i, j, i*j))
     if j == 9:
-        print ("")
+        print("")

vim 연동

vim 에서 pylint를 사용하기 위해서는 vim 플러그인을 추가적으로 설치하면 됩니다.
다음 페이지에서 pylint.vim 파일을 다운로드 받고, 사용하실 수 있습니다.

https://www.vim.org/scripts/script.php?script_id=891

위의 플러그인은 개발된지 오래되었고 아래의 syntastic 플러그인을 사용하시는 것을 권장해 드립니다.

syntastic 플러그인은 Python 뿐만 아니라 다른 언어의 코딩 스타일까지 검증할 수 있습니다. 플러그인은 아래의 페이지 내용을 참고하셔서 설치 하실 수 있습니다.

https://github.com/vim-syntastic/syntastic

( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)