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?
4 Réponses :
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
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
.
Appuyez sur: CTRL + Maj + P
Cliquez sur "Préférences: Ouvrir les paramètres (JSON)"
Ajoutez cette ligne dans JSON:
"python.linting.pylintArgs": ["--generate-members"]
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"]
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:
"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.*" ]
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:
Appuyez sur CTRL + Maj + P
Cliquez sur "Préférences: Ouvrir les paramètres (JSON)"
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 ]
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 code > ->
flake8
.