web-dev-qa-db-fra.com

Erreur "importation non résolue" de Pylint dans le code de Visual Studio

J'utilise la configuration suivante

  • MacOS Mojave
  • Python 3.7.1
  • Code Visual Studio 1.30
  • Pylint 2.2.2
  • Django 2.1.4

Je souhaite utiliser la charpie pour rendre ma vie un peu plus facile dans le code Visual Studio, cependant, chaque importation que j’ai déclarée "import non résolu". Même par défaut Django importations (c'est-à-dire à partir de modèles d'importation Django.db).

Je suppose que c'est parce qu'il ne voit pas les fichiers de l'environnement virtuel python.

Tout fonctionne très bien mais ça commence à être énervant.

Les choix d'interprète que j'ai sont toutes les versions système de python. Il ne semble pas que mon environnement virtuel python se trouve du tout (il ne se trouve pas dans le même répertoire que mon espace de travail, cette partie a donc un sens).

Si je configure le fichier python.PythonPath dans le fichier settings.json, il l’ignore et ne répertorie pas le chemin de mon environnement virtuel en tant qu’option. J'ai également essayé de le configurer dans mes paramètres globaux python, mais cela ne s'affiche pas non plus.

Quelqu'un at-il rencontré ce problème et connaît une solution rapide pour le faire fonctionner?

Merci, jAC

29
jAC

Dans votre paramètres de l'espace de travail , vous pouvez définir votre chemin python comme suit:

{
    "python.pythonPath": "/path/to/your/venv/bin/python",
}
29
ruddra

Ce problème a déjà été ouvert sur GitHub: https://github.com/Microsoft/vscode-python/issues/384 Il existe 2 réponses très utiles, de MagnuesBrzenk et de SpenHouet.

La meilleure solution pour le moment consiste à créer un fichier .env dans le dossier racine de votre projet. Ajoutez ensuite un PYTHONPATH comme ceci:

PYTHONPATH=YOUR/MODULES/PATH

et dans votre settings.json ajouter

"python.envFile": ".env"  
15
Tomasz Chudzik

Si vous avez ce code dans votre fichier settings.json, supprimez-le.

{    
    "python.jediEnabled": false
}
11
sps

Autre manière: utilisez l'interface de commande!

cmd/ctrl + shift + p> Python: Select Interpreter> choisissez celui qui contient les paquets que vous recherchez

enter image description here

10
ted
7
Ali Hesari

J'ai pu résoudre ce problème en activant Jedi dans .vscode\settings.json

"python.jediEnabled": true

Référence de https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-456017675

4
nairb

Aucun de ce qui précède n'a fonctionné pour moi. L'ajout des deux lignes ci-dessous à mon fichier settings.json l'a toutefois été.

"python.analysis.disabled": [ 
    "unresolved-import"
],
"python.linting.pylintArgs": ["--load-plugin","pylint_protobuf"] 

La première ligne ne fait que masquer l'erreur de peluchage. Certainement pas une solution permanente, mais réduit l'encombrement de l'écran.

Cette réponse m'a donné la deuxième ligne: VS Code Code PyLint E0602 (variable non définie) avec ProtoBuf compilé Python Structure

Peut-être que quelqu'un qui comprend python plus que moi peut l'expliquer davantage.

1
dillon.harless

J'ai une solution différente: mon instance de VSCode avait récupéré le virtualenv stocké dans .venv, mais utilisait le mauvais Python binaire. Il utilisait .venv/bin/python3.7; En utilisant le sélecteur dans la barre d'état bleue, je l'ai changé pour utiliser .venv/bin/python et toutes mes importations ont été résolues correctement. Je ne sais pas ce que fait VSCode dans les coulisses quand je fais cela, je ne comprends pas non plus pourquoi cela était la cause de mon problème, mais pour moi, c'était une solution légèrement plus simple que l'édition de mes paramètres d'espace de travail. J'espère que ça aide quelqu'un.

1
DuffJ

La réponse acceptée ne corrigera pas l'erreur lors de l'importation de vos propres modules. Utilisez les paramètres suivants dans les paramètres de votre espace de travail .vscode/settings.json

"python.autoComplete.extraPaths": ["./path-to-your-code"],

ref: https://github.com/Microsoft/python-language-server/blob/master/TROUBLESHOOTING.md#unresolved-import-warnings

0
Shinebayar G

Incase of pylint error installer les éléments suivants

pipenv install pylint-Django

Créez ensuite un fichier . Pylintrc dans le dossier racine et écrivez le fichier suivant.

load-plugins=pylint-Django
0