Pylint 경고를 비활성화하려면 어떻게 해야 합니까?
줄에 을 C0321("C0321")을 자주 합니다.ifPylint 0.21.1(중요한 경우: 0.20.1, 공통 0.50.3 및 Python 2.6(r266:84292, 2010년 9월 15일, 16:22:56)에 있는 짧은 한 줄 결과를 포함하는 문장).
추가하려고 했습니다.disable=C0321Pylint Configuration, 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 should should should should should 。disable=의 행 가능)[MESSAGES CONTROL].
Pylint v.25.3부터는 모든 코드 번호를 기억할 필요 없이 경고를 비활성화하는 데 기호 이름을 사용할 수 있습니다.예:
# pylint: disable=locally-disabled, multiple-statements, fixme, line-too-long
이 스타일은 암호 오류 코드보다 더 유익하고 또한 새로운 버전의 Pylint는 오류 코드가 아닌 심볼 이름만 출력하기 때문에 더 실용적입니다.
기호 이름과 코드 간의 대응은 여기에서 찾을 수 있습니다.
disable 코멘트는 자신의 행에 삽입할 수 있습니다.이 코멘트는, 같은 블록내의 모든 것에 대해서 디세이블을 적용할 수 있습니다.또는 적용할 행의 끝에 삽입할 수도 있습니다.
가 "Pylint"를출력하는 Locally disabling는 " " " " " " " disable " 을 수.locally-disabled 위의 예시와 같이 먼저.
이클립스를 사용할 때 이 문제가 발생하여 다음과 같이 해결했습니다.
pylint 폴더(예:C:\Python26\Lib\site-packages\pylint를 누른 상태에서 마우스 오른쪽 버튼을 클릭한 후 해당 폴더에서 Windows 명령을 열도록 선택합니다.유형:
lint.py --generate-rcfile > standard.rc
" " 가 됩니다.standard.rc에서 엽니다.[MESSAGES CONTROL] , 「」disable=아이디§:
disable=W0511, C0321
파일을 저장하고 Eclipse → Window → Preferences → PyDev → *pylint에서 인수 상자에 다음을 입력합니다.
--rcfile=C:\Python26\Lib\site-packages\pylint\standard.rc
이제 효과가 있을 거야...
코드의 맨 위에 코멘트를 추가하여 Pylint에서 해석할 수도 있습니다.
# pylint: disable=C0321
Pylint 메시지 코드
예를 들어 추가. --disable-ids=C0321을 사용하다
가능한 모든 "Pylint"에 됩니다._messagespylint.utils.MessagesHandlerMixIn 인수를 pylint를 하는 --disable-ids=...) 이 Pylint 예외가 합니다(「」 「」 「Pylint」 「KeyError」).pylint.utils.MessagesHandlerMixIn.check_message_id().
Eclipse에서는 Pylint 콘솔에서 이 오류 메시지를 볼 수 있습니다(Windows* → show view → Console, 콘솔 아이콘 옆의 콘솔 옵션에서 Pylint console 선택).
블록에서 로컬로 경고를 비활성화하려면
# pylint: disable=C0321
저 블록으로.
Pylint로부터의 경고 및 오류를 비활성화하는 방법은 여러 가지가 있습니다.어떤 것을 사용할지는 사용 불가능을 적용하는 글로벌 또는 로컬과 관련이 있습니다. 이는 중요한 설계 결정입니다.
복수의 어프로치
- 여러 개의 1개
pylintrcfiles.complete files files files files files files files files.
는 '아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아,~/.pylintrc($HOME ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」Pylint rcrc "closer" 。
A
pylintrc디렉토리에 "파일"을 지정합니다.즉, Python 모듈에는 Python이 되어 있습니다).
__init__.py모듈 하여 Python 모듈 계층을 합니다.pylintrc또는 파일이 발견되다.또는환경변수 PYLINTRC에 의해 명명된 파일 또는
「」이 아닌 .
/root:~/.pylintrc또는 disclossible~/.config/pylintrc또는 disclossible/etc/pylintrc
은, 「」라고 하는 이름이 붙여져 에 주의해 주세요.pylintrc의 만.~선두에 점이 있습니다.
★★★★★★★★★★★★★★★pylintrc파일, 파일, 파일, 파일, 파일, 파일, 파일, 파일.예를 들어 다음과 같습니다.
[MESSAGES CONTROL]
disable=locally-disabled
더 합니다.
pylintAboo 、 Cairnarvon 。 ★★★★★★★★★★★★★★★★★★★★★★?pylint --disable=bad-builtin를 반복합니다.라하하--disable추가 항목을 억제합니다.Imolit에서 설명한 대로 개별 Python 코드 라인에서 추가로 비활성화합니다.은 마치 것은치처럼 보인다.
some statement # pylint: disable=broad-except(원래 송신원행의 말미에 코멘트를 추가해 주세요).또, 현재 행에만 적용됩니다.제 접근 방식은 항상 다른 코드 줄의 끝에 이것들을 배치하여 블록 스타일과 혼동하지 않도록 하는 것입니다(아래 참조).또한 Python 코드의 큰 블록에 대해 정의된 소스 파일을 완전히 비활성화합니다.
은 마치 것은치처럼 보인다.
# pragma pylint: disable=bad-whitespace:pragma키워드를 지정합니다.이것들은 플러그마 이후의 모든 행에 적용됩니다.이러한 블록을 파일 맨 위에 배치하면 억제가 파일 전체에 적용됩니다.파일에서 같은 블록을 낮게 설정하면 블록 뒤에 오는 행에만 적용됩니다.제 접근법은 항상 한 줄에 배치하여 한 줄 스타일과 혼동하지 않도록 하는 것입니다(위 참조.
가 코드 " "를 합니다.
# pragma pylint: enable=bad-whitespace(는 (사용하고enabledisable의 억제를 을 사용하다
하면, 1 의 「」이 되고 있는 것에 해 주세요.# pylint 할 때 을 사용할 수 .# pragma pylint구문을 사용합니다.특히 복사 및 붙여넣기 시 혼동하기 쉽습니다.
모든 것을 종합하다
저는 보통 이러한 접근 방식을 혼합하여 사용합니다.
용 i i i i를 쓴다.
~/.pylintrc절대적인 글로벌 스탠다드에 준거하고 있습니다.이들 중 극소수입니다.레벨의 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
pylintrc프로젝트별 표준이 있는 경우 Python 모듈 내 다양한 레벨에서 사용할 수 있습니다.특히 다른 사람 또는 팀으로부터 코드를 가져올 때 사용자가 원하지 않는 규칙을 사용하는 경우가 있지만 코드를 수정하고 싶지 않습니다.설정을 이 수준으로 유지하면 이러한 작업 방식이 다른 프로젝트로 확산되지 않습니다.단일 소스 파일의 맨 위에 블록 스타일 플러그마를 사용합니다.Pylint 규격에 동의하지 않는 ('너무 적은 퍼블릭 메서드' 등) 개발 열기에 있는 플러그마(메시지 억제를 중지)를 꺼두고 싶지만, 개발 중에 Pylint 메시지를 더 많이 또는 더 많이(아마도 모두) 볼 수 있으면 도움이 됩니다.이렇게 하면 한 줄의 플러그마로 대처하고 싶은 케이스를 찾거나(아래 참조), 다음 개발자에 대한 코멘트를 추가하여 이 경우 경고가 정상인 이유를 설명할 수 있습니다.
코드가 체크인할 준비가 되어 있는 경우에도 블록 스타일의 플러그마 중 일부를 활성화한 상태로 둡니다.그 중 몇 가지를 사용하려고 합니다만, 모듈로서 의미가 있는 경우는, 메뉴얼로서 해도 괜찮습니다.다만, 가능한 한 적게 해 두려고 하고, 가급적 아무것도 하지 않는 것이 좋습니다.
특히 잠재적인 오류를 해결하기 위해 한 줄짜리 주석 스타일을 사용합니다.를 들어,를 하는 것이 말이 되는 곳이 ㅇㅇㅇㅇㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹㄹㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴ)
except Exception as exc, , , , , 을 .# pylint: disable=broad-except이는 기묘한 예외이며 기본적으로 문서의 형태로 호출해야 하기 때문에 보다 글로벌한 접근방식이 아닌 그 라인에서 이루어집니다.
Python의 다른 모든 것과 마찬가지로 다양한 수준의 간접 작업을 수행할 수 있습니다.필린트에 대해 너무 관대하게 접근하지 않도록 어떤 수준에 속하는지 생각해보라는 조언입니다.
다음은 FAQ입니다.
4.1 특정 메시지를 로컬로 비활성화할 수 있습니까?
이 0.되었습니다..
# pylint: disable=some-message,another-one원하는 블록 레벨 또는 원하는 코드 줄의 끝에 있습니다.4.2 특정 모듈에 대해서만 메시지를 비활성화하는 방법이 있습니까?
예, 파일 상단의 코멘트에 대응하는 옵션을 추가하는 것으로, 모듈레벨로 메시지를 디세이블 또는 이노블로(글로벌 디세이블) 할 수 있습니다.
# pylint: disable=wildcard-import, method-hidden # pylint: enable=too-many-lines
다음과 같이 메시지를 비활성화할 수 있습니다.
- ID: 자 id ID:
E1101,E1102등등. - 메시지: "심볼 메시지:
no-member,undefined-variable등등. - 체크 그룹의 이름그것들을 잡을 수 있습니다.
pylint --list-groups. - : " " " " "
C,R,W등등. - 「」가 붙은 모든
all.
매뉴얼 참조(또는 실행)pylint --list-msgs파일린트의 전체 메시지 목록을 표시합니다.또, 이 기능의 사용 방법의 예도 기재되어 있습니다.
다음 명령어도 사용할 수 있습니다.
pylint --disable=C0321 test.py
내 Pylint 버전은 0.25.1입니다.
비활성화할 항목을 비활성화하려면 한 줄만 추가하면 됩니다.
예.,
#pylint: disable = line-too-long, too-many-lines, no-name-in-module, import-error, multiple-imports, pointless-string-statement, wrong-import-order
모듈의 첫머리에 추가합니다.
Visual Studio Code를 사용하는 경우 다른 사용자에게 도움이 될 수 있는 경우 파일이 UTF-8 인코딩 형식이어야 합니다.파일을 생성하기 위해pylint --generate-rcfile | out-file -encoding utf8 .pylintrcPowerShell에 탑재되어 있습니다.
포스터의 일반적인 선호도에 대한 첫 번째 질문에서 벗어나서 죄송합니다.글로벌 컨피규레이션파일로 대처하는 것이 좋을 것 같습니다.그러나 많은 일반적인 답변과 마찬가지로, 나는 내 코드에서 경고를 촉발할 수 있는 것을 보고, 결국 기고자에게도 정보를 제공하는 것을 선호하는 경향이 있다.
@imolit로부터의 코멘트는 짧게 할 필요가 있습니다.상세한 것은 이쪽입니다.
★★★의 multiple-statements다음과 같이 블록 또는 모듈 수준에서 비활성화하는 것이 좋습니다.
# pylint: disable=multiple-statements
나의 사용 는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★attribute-defined-outside-initunittest setup()에서는 회선 범위 메시지 비활성화를 선택했습니다.메시지 코드를 사용하여line-too-longdisclossible을 클릭합니다.
class ParserTest(unittest.TestCase):
def setUp(self):
self.parser = create_parser() # pylint: disable=W0201
통신 내용은 다음과 같은 명령을 사용하여 로컬에서 찾을 수 있습니다.
$ pylint --list-msgs | grep 'outside-init'
:attribute-defined-outside-init (W0201): *Attribute %r defined outside __init__*
물론 코드로부터 심볼명을 취득할 수도 있습니다.
Pylint 설명서에 따르면 가장 쉬운 것은 다음 차트를 사용하는 것입니다.
- C 표기법 관련 체크
- R 리팩터링 관련 체크
- 다양한 경고
- E 오류(코드에 버그가 있을 수 있음)
- F 치명적, Pylint가 추가 처리를 수행할 수 없는 오류가 발생한 경우.
다음을 사용할 수 있습니다.
pylint -j 0 --disable=I,E,R,W,C,F YOUR_FILES_LOC
Python 구문에서는 한 줄에 세미콜론(;)으로 구분된 여러 문을 사용할 수 있습니다.하지만, 각 줄을 하나의 문장으로 제한하면, 인간이 프로그램을 읽을 때 프로그램의 논리를 따르는 것이 더 쉬워진다.
따라서 이 문제를 해결하는 또 다른 방법은 보풀메시지가 있는 이유를 이해하고 여러 문장을 한 줄에 넣지 않는 것입니다.
네, 한 줄에 여러 개의 문장을 쓰는 것이 더 쉽다는 것을 알 수 있지만, Pylint는 당신뿐만 아니라 당신의 코드의 다른 모든 리더들을 위한 것입니다.
★★★pylint disable에 .pylintrc마침내, 나는 내가 실행하고 있다는 것을 깨달았다:
pylint --disable=all --enable=F,E,W
은 그 에 있었다.disable에 .pylintrc.
Fatal, Errors, Warnings만 표시하는 올바른 명령어는 다음과 같습니다.
pylint --disable=C,R
"C:"를 편집합니다.\Users\AppData\Roaming\Code\User\settings.json"을 선택하고 다음과 같이 행 끝에 python.linting.pylintArgs'를 추가합니다.
{
"team.showWelcomeMessage": false,
"python.dataScience.sendSelectionToInteractiveWindow": true,
"git.enableSmartCommit": true,
"powershell.codeFormatting.useCorrectCasing": true,
"files.autoSave": "onWindowChange",
"python.linting.pylintArgs": [
"--load-plugins=pylint_django",
"--errors-only"
],
}
언급URL : https://stackoverflow.com/questions/4341746/how-do-i-disable-a-pylint-warning
'programing' 카테고리의 다른 글
| 이 옵션을 사용할 때 유형 'Vue'에 속성 X가 없습니다.$parent.someProporMethod 및 이것.$root.someProporMethod (0) | 2023.01.14 |
|---|---|
| 플라스크에서 정적 파일을 처리하는 방법 (0) | 2023.01.14 |
| 클래스 내에서 정적 메서드를 호출할 수 있습니까? (0) | 2023.01.14 |
| 멀티레벨 어레이를 사람이 읽을 수 있는 형식으로 출력하려면 어떻게 해야 합니까? (0) | 2023.01.14 |
| 전체 MySQL 데이터베이스 복제 (0) | 2023.01.14 |