7
votes

pylint pas de problème de membre mais le code fonctionne toujours vscode

J'ai un code très simple ici

import torch

l = torch.nn.Linear(2,5)
v = torch.FloatTensor([1, 2])
print(l(v))

sous torch.FloatTensor , pylint dans le code de Visual Studio prétend que 'Module torch n'a pas de pylint de membre' FloatTensor ' (non-membre).

Cependant, le code fonctionne bien. Est-ce un faux positif? Comment puis-je désactiver pylint pour cette instance spécifique?


1 commentaires

Est-ce une option pour passer à un linter différent? Des erreurs similaires ont disparu pour moi lorsque je suis passé à flake8 dans vscode: CTRL + Shift + P Python: Select Linter -> flake8 .


4 Réponses :


5
votes

Oui, c'est un problème de Pylint

Si vous utilisez Anaconda, vous pouvez faire:
1. recherchez python.linting.pylintPath dans votre paramètre VSCode
2. changez-le en (You Anaconda Path) \ pkgs \ pylint-1.8.4-py36_0 \ Scripts \ pylint

Votre chemin Anaconda et pylint-1.8.4-py36_0 peuvent varier


1 commentaires

Quelqu'un pourrait-il partager plus de détails à ce sujet? Je ne trouve pas le répertoire Scripts sous mon chemin (You Anaconda Path) \ pkgs \ pylint-xxx-xxx .



33
votes
  1. Appuyez sur: CTRL + Maj + P

  2. Cliquez sur "Préférences: Ouvrir les paramètres (JSON)"

  3. Ajoutez cette ligne dans JSON: "python.linting.pylintArgs": ["--generate-members"]



6 commentaires

Cela fonctionne-t-il vraiment, cependant? J'ai modifié mon JSON avec cela et pylint a complètement cessé de fonctionner.


Je vous remercie. Cela a résolu mon problème sur Visual Studio Code.


@RGS, cela a fonctionné pour moi. Êtes-vous sûr de ne pas avoir oublié la virgule à la fin de la ligne ci-dessus où vous avez inséré la ligne du n ° 3 ci-dessus?


@SoCalCoder Je suis ...: /


@SoCalCoder, est-il possible que vous ayez oublié le 'd' dans '--generated-members'? Je crois qu'il y a une faute de frappe dans la réponse ci-dessus.


@StevenDarnell, c'est en effet une faute de frappe. Selon le message d'aide de pylint ( pylint --long-help ), il devrait être --generated-members = membre1, membre2, membre3 . Ainsi, la ligne correcte dans les paramètres JSON de VSCode doit être "python.linting.pylintArgs": ["--generated-members", "from_json, query"]



2
votes

Ce qui a fonctionné pour moi, c'est de remarquer quels modules donnaient ces erreurs, c'est-à-dire torch pour vous, puis de suivre ces étapes:

  1. appuyez sur CTRL + Maj + P
  2. cliquez sur "Préférences: Ouvrir les paramètres (JSON)"
  3. ajoutez ce qui suit au fichier JSON qui vous est présenté:
"python.linting.pylintArgs": [
    "--generated-members", "torch.* other_module.* next_module.*"
]

pour le bien de cette réponse, dites qu'il y avait d'autres modules posant des problèmes, alors vous écririez:

"python.linting.pylintArgs": [
    "--generated-members", "torch.*"
]


0 commentaires

0
votes

Une meilleure réponse à cette question ici: Pourquoi dit-il que le module pygame n'a pas de membre init?

La réponse ci-dessus marquée comme la réponse avec des références à Anaconda n'a aucun sens pour moi, probablement un problème pour les débutants.

Veuillez suivre le lien pour obtenir le vrai scoop, mais pour résumer -

Remplacement de extensionname par le nom de votre module de problème, tel que pygame ou RPi ou Torch:

  1. Appuyez sur CTRL + Maj + P

  2. Cliquez sur "Préférences: Ouvrir les paramètres (JSON)"

  3. Ajoutez ce qui suit au fichier JSON qui vous est présenté (à l'intérieur du {}, s'il y a déjà des entrées, ajoutez également une virgule):

    "python.linting.pylintArgs": [ "--extension-pkg-whitelist = extensionname" // séparés par des virgules ]


0 commentaires