서론

예전에는 workspace setting에서 해당 옵션들을 다음과 같이 설정하여 pylint를 사용하였지만, deprecated되거나 지원되지 않는 방식으로 변하였다.

{
    "python.linting.pylintEnabled": true,
    "python.linting.enabled": true,
    "python.pythonPath": "가상환경의 Python 경로",
    "python.linting.pylintPath": "가상환경 내의 Pylint 경로",
}

 

2023년 8월 vscode-pylint 이슈에 따르면 vscode에 pylint extension을 설치해서 사용하길 권장한다. 

 

 


 

설정 방법 요약

  1. 생성했던 Venv 가상환경 활성화
  2. 해당 가상환경에서 pylint 설치
  3. VScode에서 `ctrl + ,`을 입력하여 설정창에 들어간 후 pylint: path입력. (본인이 설정하고자 하는 워크스페이스의 환경이 맞는지 확인 필요. user단위의 setting인지, 개인 폴더 workspace단위에서의 setting인지 확인해야 한다.)
  4. 가상환경에 설치된 pylint의 경로를 입력한다. 나의 경우에는 `C:\PythonVenv\MedicalImageProfiler\Lib\site-packages\pylint`이와 같이 절대 경로를 입력해서 설정하였다.

 

자세한 설정 방법 설명

1. 가상 환경 활성화

 

 

2. 가상 환경 내부에서 pylint 설치

pip install pylint

 

 

3. VScode를 열어 setting으로 이동 후 pylint: path 검색

 

 

4. Add item을 눌러 가상환경의 pylint 절대 경로 입력

나의 venv 가상환경 내부의 pylint 설치 경로는 다음과 같다.

C:\PythonVenv\MedicalImageProfiler\Lib\site-packages\pylint

 

그리고 pylint의 절대 경로를 입력할 때 어느 settings.json에 값이 입력될지를 잘 선택하는 것이 중요하다. 나는 해당 설정이 user 정보에 저장되어 모든 환경에서 적용되는 것이 아닌, 로컬의 workspace 단위에서만 적용되는 것을 원했다. 그래서 작업하는 공간을 vscode workspace로 따로 파일을 만든 공간의 settings.json에 값을 추가하였다.

Add item을 통해 등록하게 되면 workspace의 settings.json에 자동으로 pylint의 path가 입력되게 된다.

 

 

5. lint 동작 확인

 

Qapplication으로 잘못 타이핑 한것은 "Qapplication is not defined"로 lint error를 잘 띄워주며, 라이브러리가 있는 다른 것들은 빨간색 에러라인을 띄우지 않게 되었다.

 

 


 

추가 설명

pylint extension에서 사용 가능한 옵션

사용가능한 옵션과 이에 대한 설명은 vscode-pylint 깃허브에서 확인 가능하다. 지금은 다른 옵션은 생각하지 않고, pylint를 venv로 생성한 가상 환경에서 사용할 수 있도록 하는 것이 핵심이니 `pylint.path` 옵션만 신경쓰면 된다.

 

 

pylint.path

해당 리스트에는 VScode의 extension에서 Pylint로 파이썬 파일 문법 검사를 할 때 사용할 Pylint의 경로나 명령어를 등록한다. 이 옵션은 단일 또는 여러 개의 문자열을 받을 수 있다. 만약 명령어를 입력한다면, 각 매개변수는 배열에서 분리된 문자열로 전달되어야 한다.

 

만약 pylint.path가 ["pylint"]로 설정된다면, PATH 환경 변수에서 사용 가능한 pylint 버전을 사용하게 된다. 해당 옵션은 속도가 느릴 수 있다.

 

예시

  • "pylint.path" : ["~/global_env/pylint"]
  • "pylint.path" : ["conda", "run", "-n", "lint_env", "python", "-m", "pylint"]
  • "pylint.path" : ["pylint"]
  •  "pylint.path" : ["${interpreter}", "-m", "pylint"]

여기서 나는 맨 첫 번째 방식의 옵션을 사용했다. 

 

 

 

 

참고자료

https://github.com/microsoft/vscode-pylint/issues/374

https://github.com/microsoft/vscode-pylint#settings