web-dev-qa-db-ja.com

vsコードでpylint未使用のインポートエラーメッセージを無効にする方法

Vsコードの問題ボックスにポップアップするこれらのエラーメッセージを無効にする方法

error messages

13
Turtle Gurgle

他の人が言ったように、特定のメッセージを無効にするためにdisable引数を提供できます。私はそれについて詳しく述べたかった。

  1. 複数のメッセージを無効にし、複数の引数を提供する構文を次に示します。

    "python.linting.pylintArgs": [
        "--max-line-length=80",
        "--disable=W0142,W0403,W0613,W0232,R0903,R0913,C0103,R0914,C0304,F0401,W0402,E1101,W0614,C0111,C0301"
    ]
    
  2. 1つのメッセージを無効にすると、さらに多くのエラーが表示されるようになると述べました。実際には ドキュメント

    Visual StudioコードのPythonは、デフォルトで、最大数のPython開発者に適したリンティングルールのセットを使用するように構成されています。

    • すべてのエラー(E)および致命的(F)メッセージを有効にします。
    • すべてのConvention(C)およびRefactor(R)メッセージを無効にします。
    • 次を除くすべての警告(W)メッセージを無効にします。
      • 到達不能(W0101):到達不能コード
      • 重複キー(W0109):辞書内の重複キー%r
      • 不要なセミコロン(W0301):不要なセミコロン
      • global-variable-not-assigned(W0602):%rにグローバルを使用していますが、割り当ては行われていません
      • 未使用変数(W0612):未使用変数%r
      • binary-op-exception(W0711):キャッチする例外は、バイナリ「%s」操作の結果です
      • bad-format-string(W1302):無効なフォーマット文字列
      • 異常なバックスラッシュ文字列(W1401):ストリングの異常なバックスラッシュ
      • bad-open-mode(W1501): "%s"は有効なオープンモードではありません

    これらのルールは、Pylintに渡される次のデフォルト引数を通じて適用されます。

    --disable=all
    --enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode
    

    これらの引数は、python.linting.pylintUseMinimalCheckerstrue(デフォルト)に設定されます。 pylintArgsに値を指定するか、Pylint構成ファイルを使用する場合(次のセクションを参照)、pylintUseMinimalCheckersは暗黙的にfalseに設定されます。

    言い換えると、VS CodeではデフォルトでPyLintはかなり緩いもので、エラーのメッセージといくつかの厳選された警告のみを表示します。ただし、pylintArgsを手動で設定すると、pylintUseMinimalCheckersは無視され、すべてのメッセージへの水門が開かれます。そのため、1つのメッセージを無効にすると、より多くのメッセージが表示されます。繰り返しますが、ドキュメントによるとデフォルトで抑制されるべきだったので、最初に未使用のインポートメッセージが表示されていた理由がわかりません。

  3. 実際、これは現在機能していません:python.linting.pylintUseMinimalCheckers": true(私にとっては、この特定の時点ではありますが、うまくいけばうまくいくと思います、将来の読者)。同じ効果を得るには、pylintArgsを自動的に設定されるはずの値に手動で設定する必要がありました。

    "python.linting.pylintArgs": [
        "--disable=all",
        "--enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode"
    ]
    
  4. ボーナス:上記のポイント1に示すように、ここで使用する無効なメッセージのリストについて説明します。これは主に here =:

    # Disabled messages
    #    Pointless
    #       W0142 = *args and **kwargs support
    #       W0403 = Relative imports
    #       W0613 = Unused argument
    #       W0232 = Class has no __init__ method
    #       R0903 = Too few public methods
    #       R0913 = Too many arguments
    #       C0103 = Invalid name
    #       R0914 = Too many local variables
    #       C0304 = Final newline missing
    #
    #    PyLint's module importation is unreliable
    #       F0401 = Unable to import module
    #       W0402 = Uses of a deprecated module
    #       E1101 = Module x has no y member
    #
    #    Already an error when wildcard imports are used
    #       W0614 = Unused import from wildcard
    #
    #    Stricter messages that can be disabled until everything else has been fixed
    #       C0111 = Missing docstring
    #       C0301 = Line too long
    
16
MarredCheese
"python.linting.pylintArgs": [
    "--disable=C0111"
],

メッセージタイプごとに無効にすることもできます(例:--disable=W

適切なリファレンスは www.pylintcode.info で、メッセージIDとメッセージタイプのリストがあります。

6
joepitz1

VSコード設定(CTRL+COMMA

"python.linting.pylintArgs": [
    "--disable=W0614"
],

その他のアイデア: https://github.com/DonJayamanne/pythonVSCode/issues/57

3
Patrick