Pylint 경고를 비활성화하려면 어떻게합니까?
if
Pylint 0.21.1 (중요한 경우 : astng 0.20)에서 경고 C0321 ( "한 줄에 두 개 이상의 문")을 사용하지 않으려 고합니다 . 1, 공통 0.50.3, Python 2.6.6 (r266 : 84292, 2010 년 9 월 15 일, 16:22:56).
disable=C0321
Pylint 구성 파일을 추가하려고 시도 했지만 Pylint는이를보고해야합니다. 해당 줄의 변형 (예 : disable=0321
또는 disable=C321
)은 오류로 표시되므로 Pylint 는 옵션을 올바르게 인식 하므로 무시합니다.
이것이 Pylint 버그입니까, 아니면 제가 잘못하고 있습니까? 이 주위에 어떤 방법이 있습니까? 이 소음을 제거하고 싶습니다.
pylint --generate-rcfile
다음과 같이 보여줍니다.
[MESSAGES CONTROL]
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time.
#enable=
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once).
#disable=
따라서 섹션 안에 줄 ~/.pylintrc
이 있어야합니다 .disable=
[MESSAGES CONTROL]
이클립스를 사용 하여이 문제가 있었고 다음과 같이 해결했습니다.
pylint 폴더 (예 :)에서 C:\Python26\Lib\site-packages\pylint
Shift 키를 누른 상태에서 마우스 오른쪽 버튼을 클릭하고 해당 폴더에서 windows 명령을 열도록 선택합니다. 유형:
lint.py --generate-rcfile > standard.rc
standard.rc
구성 파일 이 생성 됩니다. 메모장에서을 열고 [MESSAGES CONTROL]
주석을 해제 disable=
하고 비활성화하려는 메시지 ID를 추가하십시오. 예 :
disable=W0511, C0321
파일을 저장하고 Eclipse-> window-> preferences-> PyDev-> pylint의 인수 상자에 다음을 입력하십시오.
--rcfile=C:\Python26\Lib\site-packages\pylint\standard.rc
이제 작동해야합니다 ...
코드 상단에 pylint가 해석 할 주석 을 추가 할 수도 있습니다 .
# pylint: disable=C0321
--disable-ids=C0321
인수 상자에 예 를 추가하면 작동하지 않습니다. 사용 가능한 모든 pylint 메시지는 클래스 _messages
인스턴스의 속성 인 dictionary에 저장됩니다 pylint.utils.MessagesHandlerMixIn
. 인수와 함께 pylint를 실행하면 --disable-ids=...
(적어도 구성 파일없이)이 사전은 비어 있으며 pylint 내에서 KeyError 예외가 발생합니다 ( pylint.utils.MessagesHandlerMixIn.check_message_id()
. Eclipse에서는 Pylint Console (Windows-show view-Console)에서이 오류 메시지를 볼 수 있습니다. 콘솔 아이콘 옆의 콘솔 옵션에서 Pylint 콘솔을 선택하십시오.)
Pylint v. 0.25.3부터는 모든 코드 번호를 기억할 필요없이 경고를 비활성화하기 위해 기호 이름을 사용할 수 있습니다. 예 :
# pylint: disable=locally-disabled, multiple-statements, fixme, line-too-long
이 스타일은 암호 오류 코드보다 유익하며, 최신 버전의 Pylint는 오류 코드가 아닌 기호 이름 만 출력하기 때문에 더욱 실용적입니다.
기호 이름과 코드 간의 일치는 여기 에서 찾을 수 있습니다 .
비활성화 주석은 자체 행에 삽입하여 동일한 블록에서 나오는 모든 것에 비활성화를 적용 할 수 있습니다. 또는 적용하려는 라인의 끝에 삽입 할 수 있습니다.
pylint가 " Locally disabling
"메시지를 출력하는 경우 위의 예와 같이 locally-disabled
먼저 disable을 포함시켜 메시지를 제거 할 수 있습니다 .
블록에서 로컬로 경고를 비활성화하려면 추가
# pylint: disable=C0321
그 블록에.
Pylint에서 경고 및 오류를 비활성화하는 방법에는 여러 가지가 있습니다. 사용할 설계는 전 세계적으로 또는 로컬로 비활성화를 적용하려는 방법과 관련이 있습니다. 중요한 디자인 결정입니다.
여러 접근
- 하나 이상의
pylintrc
파일에서.
여기에는 ~/.pylintrc
Chris Morgan이 설명한대로 파일 ($ HOME 디렉토리에 있음) 이상의 것이 포함됩니다 . Pylint는 rc 파일을 검색하며 "가까운"파일의 값이 더 높은 우선 순위를 갖습니다.
pylintrc
현재 작업중인 디렉토리 의 파일 또는현재 작업 디렉토리가 파이썬 모듈 (즉,
__init__.py
파일을 포함)에 있다면 ,pylintrc
파일이 발견 될 때까지 파이썬 모듈의 계층을 검색하십시오 . 또는환경 변수 PYLINTRC에 의해 명명 된 파일. 또는
그렇지 않은 홈 디렉토리가있는 경우
/root
:~/.pylintrc
; 또는~/.config/pylintrc
; 또는/etc/pylintrc
이러한 파일의 대부분은 이름이 지정 pylintrc
되어 ~
있으며 파일 의 맨 앞에 점이 있습니다.
당신에게 pylintrc
파일, 사용하지 않도록 특정의 pylint 메시지에 대한 행을 추가합니다. 예를 들면 다음과 같습니다.
[MESSAGES CONTROL]
disable=locally-disabled
pylint
Aboo 및 Cairnarvon에서 설명한대로 명령 줄 에서 추가로 비활성화합니다 . 이것은 다음과 같습니다pylint --disable=bad-builtin
.--disable
추가 항목을 억제 하려면 반복하십시오 .Imolit에 설명 된대로 개별 Python 코드 행에서 추가로 비활성화합니다. 이것들은
some statement # pylint: disable=broad-except
(원본 소스 라인의 끝에 추가 주석) 처럼 보이고 현재 라인에만 적용됩니다 . 내 접근 방식은 항상 다른 코드 줄 끝에 배치하여 블록 스타일과 혼동하지 않도록하는 것입니다 (아래 참조).또한 완전한 소스 파일까지 더 큰 Python 코드 블록에 대해 정의를 비활성화합니다.
이것들은 다음과 같습니다
# pragma pylint: disable=bad-whitespace
(pragma
핵심 단어를 주목하십시오 ).이것은 pragma 다음 의 모든 줄에 적용됩니다 . 이러한 블록을 파일 맨 위에두면 억제가 전체 파일에 적용됩니다. 파일에서 같은 블록을 낮추면 블록 뒤에 오는 행에만 적용됩니다. 나의 접근 방식은 항상 이것들을 그들 자신의 라인에 두어 단일 라인 스타일과 혼동하지 않도록하는 것입니다 (위 참조).
억제가 코드 범위 내에서만 적용되어야하는 경우 억제 를 중지 하려면
# pragma pylint: enable=bad-whitespace
(지금 사용enable
하지 않음disable
)을 사용하십시오 .
한 줄 # pylint
을 비활성화 하면 구문이 사용 되지만이 줄을 비활성화 하면 구문이 사용 # pragma pylint
됩니다. 복사 및 붙여 넣기시 혼동하기 쉽습니다.
함께 모아서
나는 보통 이러한 접근법을 혼합하여 사용합니다.
나는
~/.pylintrc
절대적으로 세계 표준에 사용 합니다.pylintrc
프로젝트 별 표준이있을 때 Python 모듈 내의 다른 수준에서 프로젝트 수준 을 사용 합니다. 특히 다른 사람이나 팀에서 코드를 가져 오는 경우 선호하지 않는 규칙을 사용하지만 코드를 다시 작성하고 싶지는 않을 수 있습니다. 설정을이 수준으로 유지하면 이러한 관행을 다른 프로젝트에 전파하지 않아도됩니다.단일 소스 파일 맨 위에 블록 스타일 pragma를 사용합니다. 필자는 Pylint 표준에 대해서도 개발의 열기에서 pragma를 끄고 (메시지를 표시하지 않음) 좋아하지 않습니다 ( "너무 적은 공용 메소드"와 같이 항상 사용자 정의 예외 클래스에 대해 경고가 나타납니다). 개발하는 동안 더 많은 / 아마도 모든 Pylint 메시지를 보는 것이 도움이됩니다. 이렇게하면 한 줄짜리 pragma (아래 참조)로 해결하려는 사례를 찾거나 다음 개발자에게 의견을 추가하여이 경우 해당 경고가 적합한 이유를 설명 할 수 있습니다.
코드를 체크인 할 준비가되어 있어도 일부 블록 스타일 pragma를 활성화 된 상태로 둡니다. 그 중 몇 가지를 사용하려고 시도하지만 모듈에 적합 할 때는 문서로해도됩니다. 그러나 가능한 한 적은 수를 남겨 두려고 노력합니다.
특히 강력한 오류를 해결하기 위해 한 줄 주석 스타일을 사용합니다. 실제로 할 의미가있는 장소가 있다면 예를 들어
except Exception as exc
, 내가 넣어# pylint: disable=broad-except
이 기본적으로 문서의 형태로, 밖으로 호출 할 이상한 예외 요구하기 때문에 대신 좀 더 글로벌 접근 방식의 라인에.
파이썬의 다른 모든 것들과 마찬가지로, 당신은 다른 수준의 간접적으로 행동 할 수 있습니다. 내 조언은 Pylint에 너무 관대 한 접근으로 끝나지 않도록 어떤 수준에 속하는지 생각하는 것입니다.
다음 명령을 사용할 수도 있습니다.
pylint --disable=C0321 test.py
내 pylint 버전은 0.25.1입니다.
이것은 FAQ입니다 .
4.1 특정 메시지를 로컬에서 비활성화 할 수 있습니까?
예,이 기능은 Pylint 0.11에 추가되었습니다. 이는 추가로 수행 할 수
원하는 블록 레벨에서 또는 코드의 원하는 라인의 끝에서 "비활성화 = 어떤 메시지, 다른 온 #pylint를".
코드 또는 기호 이름으로 메시지를 비활성화 할 수 있습니다. pylint의 전체 메시지 목록은 문서를 참조 하거나 pylint --list-msgs
터미널에서 실행 하십시오 .
문서는 또한 이 기능을 사용하는 방법에 대한 좋은 예 를 제공 합니다.
비활성화하려는 것을 비활성화하려면 한 줄만 추가하면됩니다. 예 :
#pylint: disable = line-too-long, too-many-lines, no-name-in-module, import-error, multiple-imports, pointless-string-statement, wrong-import-order
이것을 모듈의 # 1에 추가하십시오
누군가에게 도움이되는 경우 Visual Studio Code를 사용하는 경우 파일이 UTF8 인코딩이어야합니다. 파일을 생성하기 위해 pylint --generate-rcfile | out-file -encoding utf8 .pylintrc
PowerShell에서 실행 했습니다.
파이썬 구문은 한 줄에 세미콜론 (;)으로 구분 된 둘 이상의 문을 허용합니다. 그러나 각 줄을 하나의 문장으로 제한하면 사람이 프로그램을 읽을 때 프로그램의 논리를 쉽게 따라갈 수 있습니다.
따라서이 문제를 해결하는 또 다른 방법은 보푸라기 메시지가 왜 존재하는지 이해하고 한 줄에 둘 이상의 진술을하지 않는 것입니다.
예, 한 줄에 여러 문장을 작성하는 것이 더 쉬울 수도 있지만, pylint는 여러분뿐만 아니라 다른 모든 코드 독자를위한 것입니다.
참고 URL : https://stackoverflow.com/questions/4341746/how-do-i-disable-a-pylint-warning
'Programing' 카테고리의 다른 글
JSP에서 클래스를 어떻게 가져 옵니까? (0) | 2020.04.23 |
---|---|
Visual Studio 2010-C ++ 프로젝트-* .sdf 파일 제거 (0) | 2020.04.23 |
루트 일 때 허용되지 않는 작업-El Capitan (루트리스 비활성화) (0) | 2020.04.22 |
파일을 복사 할 수 없습니다. 경로에 대한 액세스가 거부되었습니다 (0) | 2020.04.22 |
jQuery로 scrollTop에 애니메이션을 적용 할 수 있습니까? (0) | 2020.04.22 |