PyCharm으로 Pylint를 실행하는 방법


82

작업중인 파이썬 프로젝트의 전체 프로젝트 디렉토리에서 pylint를 외부 도구로 구성하고 싶습니다. 저장소를 사용하거나 사용 __init__.py하지 않고 모듈로 사용하려고 시도했지만 어느 쪽이든 작동하지 않습니다.

PyCharm과 함께 실행할 파일 린트를 설정하는 데 어려움이 있습니다. 외부 도구로 실행해야한다는 것을 알고 있지만 설정이 혼란 스럽습니다.

문서의 권위있는 소스가 깨져서 나도 확인할 수 없습니다.

답변:


134

pylint다음 단계에 따라 PyCharm과 함께 작동하도록 설정할 수 있습니다 .

  1. 설치 pylint:

    $ pip install pylint
    
  2. pylint설치 폴더를 찾으십시오 .

    $ which pylint         # MacOS/Linux
    /usr/local/bin/pylint  # this is just a possible output check yours
    

    $ where pylint         # Windows
    %LocalAppData%\Programs\Python\Python36-32\Scripts\pylint.exe  # possible location
    
  3. 로 PyCharm 설정 창을 연 File -> Settings다음 Tools -> External Tools사이드 바에서 로 이동 하십시오. (또는 " 외부 도구 " 검색 )

    PyCharm 외부 도구

  4. + 기호를 클릭하고 그에 따라 필드를 채워 외부 도구를 설정합니다. 에서 Program사용 실행할 때 얻은 경로가 which pylint다른 값을 사용하면 이미지의 동일한를 사용할 수 있습니다.

    PyCharm 편집 도구

  5. 실행 pylint에서 Tools -> External Tools -> pylint:

    PyCharm 외부 도구

  6. PyCharm 터미널에서 출력보기

    PyCharm 터미널

자세한 내용은 PyCharm사용한 Pylinting을 참조하십시오 .

최신 정보:

pylint전체 프로젝트 또는 특정 파일 또는 디렉토리를 확인하는 데 사용 하려면 External Tools -> pylint아래 그림과 같이 프로젝트 루트, 파일 또는 디렉토리를 마우스 오른쪽 버튼으로 클릭하면 됩니다.

PyCharm 전체 프로젝트 확인


@stevenVascellaro,이 링크를 확인할 수 있습니다 . 또는 pylint컴퓨터에 설치된 위치를 찾을 수 있습니다.
lmiguelvargasf

1
감사. Windows 사용자를위한 지침을 추가했습니다.
Stevoisiak

@StevenVascellaro, 기여해 주셔서 감사합니다!
lmiguelvargasf

이 답변이 작동하는 동안 텍스트 필드에 결과를 기록합니다. 이제 모든 작업을 수행하고 IDE에 연결하여 의심스러운 줄을 강조하는 PyCharm 플러그인이 있습니다. 기본 저장소에서 다운로드 할 수 있습니다. 자세한 내용은 다른 답변 중 하나를 참조하십시오.
JohnEye

설명한 모든 단계를 수행했지만 기본 구성을 사용하여 구성 파일을 찾을 수 없음이라는 경고 메시지가 표시됩니다. 그런 다음 대답과 같이 리소스 파일을 만들었습니다. stackoverflow.com/questions/5253559/… . 이제 파일 린트가 잘 작동합니다.
limonik

27

작동하는 기성품 설정을 찾지 못했기 때문에 다음은 macOS의 PyCharm CE 2018.1에서 사용하는 설정입니다.

1- pip install pylint프로젝트 virtualenv 또는 전역

2-새 외부 도구를 추가하고 다음을 구성합니다.

Program: pylint
Arguments: "--msg-template='{abspath}:{line:5d},{column:2d}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$:\s*$LINE$\,\s*$COLUMN$:

msg-template에 필요한 큰 따옴표와 출력 필터에 대한 이스케이프 문자에 주목하십시오. 출력 필터를 사용하면 파일 경로를 클릭하고 IDE 소스 편집기에서 위치를 열 수 있습니다.

누락 된 기능은 내장 linter로 수행되는 것처럼 Lint 설명을 소스보기에 직접 플로팅하는 출력 필터뿐입니다. 현재로서는 그러한 기능이 없습니다.

기둥 인수


6
이 설정은 누군가가 궁금해하는 경우 Windows에서도 작동합니다.
geometrikal

창문은 어때?
StackGuru

14

Pylint PyCharm 플러그인을 사용해 볼 수 있습니다 .

Pylint PyCharm 스크린 샷

PyCharm / IDEA 내에서 Pylint를 사용하여 Python 파일의 실시간 및 주문형 검색을 모두 제공합니다.

일단 설치하면 실시간 검사가 자동으로 작동합니다. 주문형의 경우 현재 열려있는 파일을 확인하는 것에서 전체 프로젝트를 스캔하는 몇 가지 옵션이 있습니다. 여기에 이미지 설명 입력

(투명성을 위해 개발자입니다)


이거 좋아 보인다. 불행히도 시작시 예외가 발생합니다. / usr / bin에 설치된 pylint 버전이 마음에 들지 않으며 프로젝트의 virtualenv에서 pylint를 사용하지 않습니다. 플러그인이 이상적인 솔루션이 될 것 같아서 계속 업데이트를 확인하겠습니다. :-)
Aaron F

안녕하세요, 아직 해보지 않으 셨다면 여기 에서 idea.log 파일을 첨부 하여 문제를여 세요 .
Roberto Leinardi

나는 훑어 보았고 그것은 # 29의 중복 인 것 같다. 내 로그의 관련 줄을 해당 문제에 추가하겠습니다.
Aaron F

@AaronF 파일의 경로를 virtualenv에 설치된 경로로 수동으로 설정해야합니다. 대신은 / usr / 빈 / pylint의 예 : projectvenv / 빈 / pylint
가우 탐 자이나교

13

편집 : 이제이 답변을 처음 쓸 때 존재하지 않았던 Pycharm 플러그인 을 사용하고 권장합니다 .


동료가 GitHub의 pylint-pycharm가리 켰 습니다. PyCharm 용으로 형식화 된 출력이있는 pylint 주위의 래퍼입니다. 설정 방법은 다음과 같습니다.

git clone https://github.com/perses76/pylint-pycharm.git
cd pylint-pycharm
python setup.py build

이것은 build/scripts-2.7/pylint-pycharm

그런 다음 PyCharm에서 다음 설정으로 새 외부 도구를 만듭니다.

Program: path to your installation of pylint-pycharm  
Arguments: --virtualenv=$PyInterpreterDirectory$/.. $FileName$
Working directory: $FileDir$ 
Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*

PyCharm 용 PyLint 외부 도구 설정 스크린 샷

이제 도구-> 외부 도구-> PyLintPyCharm에서 실행하십시오. 출력의 각 줄은 소스 코드의 관련 위치에 하이퍼 링크됩니다.


5

이전 답변에 대한 메모. 파일 위치로 직접 이동할 수 있도록 PyCharm이 출력 구문을 인식하도록하는 방법을 찾고있었습니다. 추가 도구를 사용하지 않고도 작동합니다.

pylintrc msg-template파일 의 옵션 또는 CLI 옵션을 사용하여 특정 형식으로 메시지를 출력하도록 Pylint를 구성 할 수 있습니다.--msg-template .

나는 그것을 다음과 같이 설정했다. msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'

외부 도구 설정에서 PyCharm이보고 된 위치로 직접 이동할 수있는 링크를 표시하도록 Output filters:설정할 수 있습니다 $FILE_PATH$:$LINE$:$COLUMN$: .*. 이것은 다음과 output-format=colorized같이 결합 될 수 있습니다 . 여기에 이미지 설명 입력 PyCharm은 열을 구성 했음에도 불구하고 열을 인식하지 못합니다. 그러나 파일과 줄이 있으면 충분합니다.


열을 감지하는 올바른 출력 필터에 대한 내 대답을 참조하십시오. stackoverflow.com/a/50298934/324731
lkraider

@lkraider 관련 차이점이 보이지 않습니다. 내가 시도한 쉼표로 줄과 열을 구분하고 있습니다. 작동하지 않았습니다. 그런 다음 필요하지 않은 콜론을 이스케이프합니다. 나는을위한 전체 솔루션을 시도 msg-template하고 Output filters있지만, 열이 검출되지 않았다. 다른 문제가있을 수 있습니다. 문제를 정확히 찾아 낼 수 있습니까? 저는 PyCharm 2018.1.2로 작업하고 있습니다.
ub_marco

탐지를 어떻게 테스트하고 있습니까? 내 것은 당신과 같은 줄 번호에 밑줄을 긋지 않지만 링크를 클릭하면 캐럿이 올바른 위치로 이동합니다.
lkraider

실제로 줄 번호가 밑줄로 표시되면 링크가 작동하지 않습니다. 이것은 라인이> 99 일 때 내 예에서 발생합니다. 공간 분리가있는 경우 링크는 캐럿을 열 위치에 올바르게 배치합니다.
lkraider

이것은 나를 위해 일했습니다 .... 이제 "Windows가 'file : /// C : \ Use ...를 찾을 수 없습니다.'라는 메시지가 표시됩니다.
Dan Ciborowski-MSFT

3

처음에는 pip를 사용하여 pylint를 설치합니다.

pip install pylint

"설정> 도구> 외부 도구"를 열고 PyCharm에서 "+"버튼을 눌러야합니다.

다음은 좋은 설정 의 입니다.


2
예제를 따랐지만 실행하는 동안 오류가 발생했습니다. "pylint"프로그램을 실행할 수 없습니다 ( "/ Users / RodChen / my_project"디렉터리) : error = 2, 해당 파일 또는 디렉터리가 없습니다. $ FileDir $을 작업 디렉토리로 사용하기 때문에 디렉토리가 존재한다고 확신합니다. 어떻게 고칠 수 있습니까? 고마워.
Rod Chen

창문을 사용하시는 것 같아요. Pylint가 터미널에서 작동합니까?
ikreb

2
저는 Mac을 사용합니다. 작업중인 가상 환경에만 파일 린트를 설치했고 일반 터미널에서는 파일 린트가 작동하지 않습니다. 시스템에 파일 린트를 설치 한 후, 파일 린트는 PyCharm에서 작동했습니다! 감사합니다!
로드 첸

@RodChen pylint가상 환경 에도 설치했습니다. 내 가상 환경의 파이썬 인터프리터에 PyCharm을 지정했는데 제대로 작동 하는 것 같습니다 . 나는 매우 처음 pylint이므로 내가 알지 못하는 특정 기능을 언급하고있을 수 있습니다.
Marc

3

Roberto Leinardi는 실제로 작동하고 IDE에 잘 통합되는 pycharm 용 pylint 플러그인을 만들었습니다.

리포지토리에서 쉽게 설치할 수 있으며 아래의 전체 지침 : https://github.com/leinardi/pylint-pycharm

지금까지 짧지 만 행복한 경험이 있습니다! 로베르토에게 찬사를 보냅니다.


1

여기에있는 정보와 PyCharm의 업데이트 된 문서 덕분에 프로젝트의 가상 환경을 사용하기 위해이 작업을 훌륭하게 수행 할 수있었습니다 (모든 패키지를 가상 환경 내에서 배포 할 수 있고 전역 적으로 배포 할 필요가 없음을 확인). ).

lkraider가 이전에 제공했지만 약간의 수정 사항을 사용합니다.

  1. 가상 환경 내에 파일 린트를 설치해야합니다. 가상 환경을 만들 때 "Inherit global site-packages"를 선택하지 않았는지 확인하십시오. 그렇게하면 pylint가 전역 적으로 끝나고 작동하지 않습니다.

  2. 새 외부 도구를 추가하고 구성하십시오. 이것은 lkraider가 제공 한 것과 약간 다릅니다. 하나의 경우 일반 pylint 출력처럼 보이기를 원했기 때문에 msg-template (및 출력 필터)가 약간 다릅니다. 각자 자신에게. 두 번째 변경 사항은 $ PyInterpreterDirectory $를 사용하는 프로그램 매개 변수 인 가상 환경을 기반으로 pylint를 실행하는 데 더 중요합니다.

Program: $PyInterpreterDirectory$/pylint
Arguments: "--msg-template='{abspath}:{line:5d}:{column}: {msg_id}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$:\s*$LINE$\:\s*$COLUMN$:

파일 린트 용 외부 도구


창문은 어때?
StackGuru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.