web-dev-qa-db-fra.com

Comment désactiver les messages d'erreur d'importation pylint inutilisés dans vs code

Comment puis-je désactiver ces messages d'erreur de apparaître dans la zone des problèmes en vs code

 error messages

5
Turtle Gurgle
"python.linting.pylintArgs": [
    "--disable=C0111"
],

Vous pouvez également désactiver par type de message, par exemple, --disable=W.

Une bonne référence est www.pylintcode.info , avec une liste d'identifiants et de types de messages.

5
joepitz1

Dans vos paramètres de code VS (CTRL+COMMA)

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

Pour plus d'idées: https://github.com/DonJayamanne/pythonVSCode/issues/570

2
Patrick

Comme d'autres l'ont dit, vous pouvez fournir un argument de désactivation pour désactiver un message spécifique. Je voulais élaborer sur cela.

  1. Voici la syntaxe permettant de désactiver plusieurs messages et de fournir plusieurs arguments, ce qui ne m'était pas immédiatement évident de le regarder dans Google:

    "python.linting.pylintArgs": [
        "--max-line-length=80",
        "--disable=W0142,W0403,W0613,W0232,R0903,R0913,C0103,R0914,C0304,F0401,W0402,E1101,W0614,C0111,C0301"
    ]
    
  2. Vous avez déclaré que vous aviez commencé à voir de nombreuses erreurs une fois que vous aviez désactivé ce message. Cela pourrait en fait avoir du sens selon la documentation :

    Le code Python dans Visual Studio est configuré par défaut pour utiliser un ensemble de Des règles qui nuisent au plus grand nombre de Python développeurs:

    • Activer tous les messages d'erreur (E) et fatal (F).
    • Désactiver tous les messages Convention (C) et Refactor (R). 
    • Désactiver tous les messages d’avertissement (W) à l’exception des suivants:
      • inaccessible (W0101): code inaccessible
      • duplicate-key (W0109): clé en double% r dans le dictionnaire
      • point-virgule inutile (W0301): point-virgule inutile
      • variable-globale-non-affectée (W0602): Utilisation de global pour% r mais aucune affectation n'est effectuée
      • variable non utilisée (W0612): Variable non utilisée% r
      • binary-op-exception (W0711): l’exception à intercepter est le résultat d’une opération binaire "% s"
      • bad-format-string (W1302): Chaîne de format non valide
      • anomalous backslash-in-string (W1401): Barre oblique inverse anormale dans la chaîne
      • bad-open-mode (W1501): "% s" n'est pas un mode valide pour ouvrir

    Ces règles sont appliquées via les arguments par défaut suivants transmis à 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
    

    Ces arguments sont passés chaque fois que le python.linting.pylintUseMinimalCheckers est défini sur true (valeur par défaut) . Si vous spécifiez une valeur dans pylintArgs ou utilisez une configuration Pylint fichier (voir la section suivante), alors pylintUseMinimalCheckers est implicitement défini sur false.

    En d'autres termes, PyLint est censé être assez laxiste par défaut dans VS Code, ne vous montrant que des messages d'erreur et quelques avertissements sélectionnés à la main. Mais lorsque vous définissez manuellement pylintArgs sur quelque chose, pylintUseMinimalCheckers est ignoré, ce qui ouvre la porte à tous les messages. C'est peut-être pour cette raison que la désactivation d'un message a entraîné l'affichage de davantage de messages. Là encore, je ne suis pas sûr de savoir pourquoi vous voyiez des messages d'importation non utilisés car ils auraient dû être supprimés par défaut, conformément à la documentation.

  3. En fait, cela ne fonctionne pas actuellement:python.linting.pylintUseMinimalCheckers": true (pour moi, à ce moment précis, mais espérons que cela fonctionnera bien pour vous, futur lecteur). Pour obtenir le même effet, je devais définir manuellement pylintArgs sur la valeur qu'elle était censée définir automatiquement:

    "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. BONUS: Voici une explication de la liste des messages désactivés que j'utilise, comme indiqué ci-dessus au point 1. Elle provient principalement de ici :

    # 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
    
1
MarredCheese