pylint를 사용하여 하나의 특정 라인을 무시할 수 있습니까?


150

헤더에 다음 줄이 있습니다.

import config.logging_settings

이것은 실제로 파이썬 로깅 설정을 변경하지만 pylint는 이것이 사용되지 않은 가져 오기라고 생각합니다. unused-import일반적으로 경고 를 제거하고 싶지 않으므로이 특정 행을 무시하는 것이 가능합니까?

.pylintrc이 프로젝트에 대해 신경 쓰지 않아도 되므로 구성 파일 변경에 대한 답변이 허용됩니다.

그렇지 않으면 다음과 같은 것도 감사하겠습니다.

import config.logging_settings # pylint: disable-this-line-in-some-way

답변:


227

Pylint 메시지 제어는 Pylint 매뉴얼에 설명되어 있습니다 .

특정 메시지를 로컬에서 비활성화 할 수 있습니까?

예,이 기능은 Pylint 0.11에 추가되었습니다.
# pylint: disable=some-message,another-one
원하는 블록 레벨 또는 원하는 코드 줄 끝에 추가하여 수행 할 수 있습니다.

메시지 코드 또는 기호 이름을 사용할 수 있습니다.

예를 들어

def test():
    # Disable all the no-member violations in this function
    # pylint: disable=no-member
    ...
global VAR # pylint: disable=global-statement

매뉴얼에는 추가 예제가 있습니다.

위키 그 문서의 모든 pylint 메시지와 자신의 코드.


나는 flake8 s를 좋아한다 # noqa. 코드에서 너무 많은 주석을보고 싶지 않습니다. # nolint훨씬 더 명확합니다.
닐스 린데 만

61
import config.logging_settings # pylint: disable=W0611

그것은 간단하고 그 라인에 따라 다릅니다.

sthenault가 친절하게 지적했듯이 더 읽기 쉬운 양식을 사용할 수 있으며 사용해야합니다.

import config.logging_settings # pylint: disable=unused-import

메시지 명시 적 기호는 어디서 얻습니까? 내 스파이더 (스파이더에있는 것)는 그것을보고하지 않으며 jomo의 답변에 링크 된 wiki도 나열하지 않습니다.
Joooeey

당신은 의미 unused-import합니까? 나는 내가 기억하지 않도록> 3yrs을 내가 W0611 사용하지만, 그것이었다 때 내 린터 나에게 경고를 준 생각 : / 죄송합니다
Unfun 고양이

4

나는 당신이 찾고있는 것이 믿습니다 ...

import config.logging_settings  # @UnusedImport

다른 서식 경고에 부딪치지 않도록 주석 앞에 이중 공백을 기록하십시오.

또한 IDE (사용하는 경우)에 따라 올바른 무시 규칙을 추가하는 옵션이있을 수 있습니다 (예 : Ctrl1커서가 경고를 넘은 동안 일식 누르면 자동 제안됩니다)@UnusedImport


2
일부 IDE에서는 작동하지만 작동하지 않습니다 emacs/flycheck. 감사. 다른 사람에게 도움이 될 수 있으므로 답을 유지하십시오.
Unfun Cat

실행 중이 pylint거나 flake8명령 줄에서 작동하지 않습니다 .
Jacob Tomlinson

@JacobTomlinson 재미있는, 감사합니다. Pydev가 받아들이는 것인데 pyclipse가 단순히 pylint에 껍질을 벗겼다는 인상을 받았습니다. 약간 커스터마이징되었거나 Eclipse가 해당 지시문을 처리하고 출력을 억제해야합니다.
기본

4

https://github.com/PyCQA/pylint/tree/master/pylint/checkers 에서 파일을 확인하십시오 . Ctrl + F- 파일이나 Github 검색 기능을 사용하는 것보다 메시지에서 오류 이름을 얻는 더 좋은 방법을 찾지 못했습니다.

메시지가 "모듈에 이름 없음 ..."인 경우 검색을 사용하십시오.

No name %r in module %r repo:PyCQA/pylint/tree/master path:/pylint/checkers

또는 더 적은 결과를 얻으려면 :

"No name %r in module %r" repo:PyCQA/pylint/tree/master path:/pylint/checkers

Github가 보여줄 것입니다 :

"E0611": (
    "No name %r in module %r",
    "no-name-in-module",
    "Used when a name cannot be found in a module.",

그런 다음 다음을 수행 할 수 있습니다.

from collections import Sequence # pylint: disable=no-name-in-module


고마워, 소스를 살펴 보는 것보다 훨씬 낫다. pylint doc에 대한 두 개의 미러가 더 있습니다. 분명히 readthedoc 은 공식 미러입니다. 다른 하나는 pylint.org
loxaxs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.