Ich benutze PyCharm, um an einem Projekt zu arbeiten. Das Projekt wird mit einem Interpreter geöffnet und konfiguriert und kann erfolgreich ausgeführt werden. Die Ferninterpreterpfade werden ordnungsgemäß zugeordnet. Dies scheint die richtige Konfiguration zu sein, aber PyCharm hebt meinen gültigen Code mit "nicht aufgelösten Referenz" -Fehlern hervor, selbst für integrierte Python-Funktionen. Warum werden diese nicht erkannt, obwohl der Code ausgeführt wird? Gibt es eine Möglichkeit, PyCharm dazu zu bringen, diese richtig zu erkennen?
Diese spezielle Instanz des Problems betrifft einen Remote-Interpreter, aber das Problem tritt auch bei lokalen Interpreten auf.
Datei | Caches ungültig machen ... und PyCharm neu starten hilft.
Die Antwort von Dmitry hat für mich nicht funktioniert.
Ich bekam meine Arbeit, indem ich zu Projektinterpreter ging, die Registerkarte "Pfade" auswählte und in diesem Untermenü auf die Aktualisierungsschaltfläche klicke. Es füllte sich automatisch mit etwas, das "Python-Skelette" genannt wurde.
edit : Screenshot mit PyCharm 3.4.1 (ist ziemlich gut versteckt)
Dafür gibt es viele Lösungen, einige bequemer als andere, und sie funktionieren nicht immer.
Hier können Sie alles versuchen, von "schnell" zu "ärgerlich":
File
-> Invalidate Caches / Restart
und starten Sie PyCharm ..__ neu.Run
-> Edit Configurations
-> Configuration
-> Python Interpreter
.File
-> Settings
Project: [name]
-> Project Interpreter
-> 'Projektinterpreter': Zahnradsymbol -> More...
File
-> Settings
Project: [name]
-> Project Interpreter
-> 'Projektinterpreter': Zahnradsymbol -> More...
.idea
-Ordner Ihres Projekts~/.PyCharm50
auf dem Mac%homepath%/.PyCharm50
unter WindowsIch finde, ich entferne den Remote-Interpreter und füge ihn erneut hinzu, um dieses Problem zu beheben, wenn das Invalidieren von Caches oder das Aktualisieren von Pfaden nicht funktioniert.
Ich verwende vagrant und ab und zu, wenn ich meinem Multi-vm-Setup ein neues VM hinzufüge, ändert sich der weitergeleitete Port. Dies scheint PyCharm zu verwirren, wenn versucht wird, den falschen Port für SSH zu verwenden. Das Ändern des Ports scheint den gebrochenen Verweisen nicht zu helfen.
In meinem Fall war es die Verzeichnisstruktur . Mein Projekt sieht folgendermaßen aus:
+---dir_A
+---dir_B
+app
|
\-run.py
Also Rechtsklick auf dir_b> "Verzeichnis als"> "Projektwurzel markieren"
Getestet mit PyCharm 4.0.6 (OSX 10.10.3) Gehen Sie folgendermaßen vor:
Problem gelöst!
Wenn keine der anderen Lösungen für Sie geeignet ist, versuchen Sie, Ihren ~/.PyCharm40-Ordner (zu sichern) und zu löschen, und öffnen Sie dann PyCharm erneut. Dies wird auch alle Ihre Präferenzen töten.
Auf einem Mac möchten Sie ~/Library/Caches/Pycharm40 und ~/Library/Preferences/PyCharm40 löschen.
Und unter Windows: C:\Users\$ USER.PyCharm40.
Es tut mir leid, diese Frage zu stoßen, allerdings muss ich ein wichtiges Update machen.
Möglicherweise möchten Sie Ihren Projektinterpreter auf Python 2.7.6 zurücksetzen, wenn Sie eine andere Version als diese verwenden. Dies funktionierte bei meiner Ubuntu-Installation von PyCharm 4.04 professional, nachdem keine der anderen Empfehlungen mein Problem gelöst hatte.
Sie könnten versuchen, Pycharm zu schließen, den Ordner .idea
aus Ihrem Projekt zu löschen, Pycharm erneut zu starten und das Projekt neu zu erstellen. Dies funktionierte für mich, während der Cache für ungültig erklärt wurde.
Ich bekam diese Arbeit endlich, nachdem keine der vorgeschlagenen Lösungen für mich funktionierte. Ich spielte mit einem Django-Rest-Framework-Projekt und verwendete eine Virtualenv, die ich damit eingerichtet hatte. Ich konnte Pycharm reparieren lassen, indem ich den Root-Ordner als Source-Root markierte, aber dann würde Djangos Server Auflösungsausnahmen auslösen. Einer würde also arbeiten, wenn der andere es nicht tun würde und umgekehrt.
Letztendlich musste ich nur den Unterordner als Quellenstamm in pycharm markieren. So war meine Struktur so
-playground
-env
-playground
Der zweite Ordner für den Spielplatz ist der Ordner, den ich als Quellenstamm markieren musste, damit alles wie erwartet funktioniert. Das stellte für mein Szenario keine Probleme dar und war daher eine praktikable Lösung.
Ich dachte nur, ich würde es teilen, falls jemand anderes es benutzen kann.
Keine der oben genannten Lösungen hat für mich funktioniert!
Wenn Sie eine virtuelle Umgebung für Ihr Projekt verwenden, stellen Sie sicher, dass Sie die python.exe
-Datei, die sich in Ihrem virtuellen Umgebungsverzeichnis befindet, als Interpreter für das Projekt (Alt + Ctrl + Shift + S)
.__ anwenden. Dies hat das Problem für mich gelöst.
Ich habe alle anderen Projekte geschlossen und habe mein erforderliches Projekt isoliert in Pycharm durchgeführt. Ich habe eine eigene Virtualenv aus pycharm erstellt und alle erforderlichen Module mit pip hinzugefügt. Ich habe diese virtuelle Umgebung zum Projektinterpreter hinzugefügt. Das hat mein Problem gelöst.
In meinem Fall zeigt sich der Inspektionsfehler aufgrund eines sehr speziellen Falls von Python-Code. Eine Min-Funktion, die zwei numpy-Funktionen und zwei Listenzugriffe enthält, führt dazu, dass meine Codeinspektion diese Art von Fehlern ausgibt.
Das Entfernen der Zeile 'd = 0' im folgenden Beispiel führt erwartungsgemäß zu einem nicht aufgelösten Referenzfehler. Beim Lesen dieser Informationen wird der Fehler für den Code-Inspector jedoch nicht behoben. Ich kann den Code danach ohne Probleme ausführen.
import numpy as np
def strange(S, T, U, V):
d = 0
print min(np.abs(S[d]), np.abs(T[d]), U[d], V[d])
Das Löschen von Caches und das erneute Laden einer Liste von Pfaden funktioniert nicht. Nur das Ändern des Codes mit einem der folgenden Beispiel-Patches funktioniert:
Keine der Antworten löste mein Problem.
Was es für mich tat, war, die Umgebung zu wechseln und zur gleichen Umgebung zurückzukehren. File->Settings->Project interpreter
Ich benutze Conda-Umgebungen.
Was für ein Albtraum, mein Zusammenschluss verschiedener StackOVerflow-Antworten:
Wenn Sie vagrant
verwenden, kann der Fehler durch einen falschen Python-Interpreter verursacht werden ..__ In unserer vagrant
verwenden wir pyenv
, daher musste ich den Python Interpreter path
-Pfad von /usr/bin/python
in /home/vagrant/.pyenv/versions/vagrant/bin/python
ändern.
Wenn Sie nur einige "nicht aufgelöste Referenzfehler" ignorieren möchten, können Sie PyCharm dies auch explizit mitteilen, indem Sie dies vor Ihrer Klasse/Methode/Funktion platzieren:
# noinspection PyUnresolvedReferences