web-dev-qa-db-ger.com

Pylint "ungelöster Import" -Fehler im Visual Studio-Code

Ich verwende das folgende Setup

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

Ich möchte Linting verwenden, um mein Leben im Visual Studio-Code ein wenig zu vereinfachen. Bei jedem Import wird jedoch "ungelöster Import" angegeben. Auch bei Standard-Django -Importen (d. H. Von Django.db-Importmodellen).

Ich nehme an, dass dies daran liegt, dass die Dateien der virtuellen Umgebung python nicht angezeigt werden.

Alles funktioniert gut, aber es wird langsam nervig.

Die Interpreter-Auswahlmöglichkeiten, die ich habe, sind alle Systemversionen von Python. Es scheint meine virtuelle Umgebung python überhaupt nicht zu sehen (sie befindet sich nicht im selben Verzeichnis wie mein Arbeitsbereich, daher ist dieser Teil sinnvoll).

Wenn ich python.PythonPath in der settings.json-Datei einrichte, ignoriert es es einfach und listet meinen Pfad zur virtuellen Umgebung nicht als Option auf. Ich habe auch versucht, es in meinen globalen python -Einstellungen einzurichten, aber es wird auch nicht angezeigt.

Hat jemand auf dieses Problem gestoßen und eine schnelle Lösung gefunden, um es zum Laufen zu bringen?

Danke, jAC

29
jAC

In Ihrem Arbeitsbereichseinstellungen können Sie Ihren python -Pfad wie folgt festlegen:

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

Dieses Problem wurde bereits auf GitHub geöffnet: https://github.com/Microsoft/vscode-python/issues/384 Es gibt zwei sehr nützliche Antworten von MagnuesBrzenk und SpenHouet.

Die beste Lösung für den Moment ist das Erstellen einer ENV-Datei in Ihrem Projektstammordner. Fügen Sie dann einen PYTHONPATH wie folgt hinzu:

PYTHONPATH=YOUR/MODULES/PATH

und in deiner settings.json hinzufügen

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

Wenn Sie diesen Code in Ihrer settings.json -Datei haben, löschen Sie ihn

{    
    "python.jediEnabled": false
}
11
sps

Alternative Methode: Verwenden Sie die Befehlsoberfläche!

cmd/ctrl + shift + p> Python: Select Interpreter> wählen Sie das Paket aus, nach dem Sie suchen

enter image description here

10
ted
7
Ali Hesari

Ich konnte dieses Problem lösen, indem ich jedi in .vscode\settings.json aktivierte

"python.jediEnabled": true

Referenz von https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-456017675

4
nairb

Keines der oben genannten hat bei mir funktioniert. Das Hinzufügen der beiden folgenden Zeilen zu meiner settings.json-Datei hat jedoch funktioniert.

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

Die erste Zeile verbirgt wirklich nur den Flusenfehler. Mit Sicherheit keine dauerhafte Lösung, sondern macht den Bildschirm unübersichtlich.

Diese Antwort gab mir die zweite Zeile: VS-Code PyLint-Fehler E0602 (undefinierte Variable) mit ProtoBuf-kompilierter Python-Struktur

Vielleicht kann jemand, der python mehr versteht als ich, das noch erklären.

1
dillon.harless

Ich habe eine andere Lösung: Meine VSCode-Instanz hat die in .venv gespeicherte virtuelle Datei aufgenommen, aber die falsche Python-Binärdatei verwendet. Es wurde .venv/bin/python3.7 verwendet; Mit dem Umschalter in der blauen Statusleiste habe ich ihn in .venv/bin/python geändert und alle meine Importe wurden korrekt aufgelöst. Ich weiß nicht, was VSCode hinter den Kulissen tut, wenn ich dies tue, und ich verstehe auch nicht, warum dies mein Problem verursacht hat, aber für mich war dies eine etwas einfachere Lösung als das Bearbeiten meiner Arbeitsbereicheinstellungen. Ich hoffe es hilft jemandem.

1
DuffJ

Die akzeptierte Antwort behebt den Fehler beim Importieren eigener Module nicht. Verwenden Sie die folgenden Einstellungen in Ihren Arbeitsbereicheinstellungen .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

Falls ein Pylint-Fehler auftritt, installieren Sie Folgendes

pipenv install pylint-Django

Erstellen Sie dann eine Datei . Pylintrc im Stammordner und schreiben Sie Folgendes

load-plugins=pylint-Django