347 Stimmen

PyCharm zeigt nicht aufgelöste Referenzen für gültigen Code an

Ich verwende PyCharm, um an einem Projekt zu arbeiten. Das Projekt ist geöffnet und mit einem Interpreter konfiguriert und kann erfolgreich ausgeführt werden. Die Pfade der entfernten Interpreter sind richtig zugeordnet. Dies scheint die richtige Konfiguration zu sein, aber PyCharm markiert meinen gültigen Code mit "unresolved reference"-Fehlern, sogar für eingebaute Python-Funktionen. Warum werden diese anscheinend nicht erkannt, obwohl der Code läuft? Gibt es eine Möglichkeit, PyCharm dazu zu bringen, diese korrekt zu erkennen?


In diesem speziellen Fall tritt das Problem bei einem entfernten Interpreter auf, aber auch bei lokalen Interpretern tritt das Problem auf.

1voto

Hien Quang Le Punkte 160

Mein Problem ist, dass Flachmann-WTF wird nicht aufgelöst durch PyCharm . Ich habe versucht, neu zu installieren und dann installieren oder Cache ungültig machen und neu starten PyCharm, aber es funktioniert immer noch nicht.

Dann bin ich auf diese Lösung gekommen, und sie funktioniert perfekt für mich.

  1. Öffnen Sie Projekt-Dolmetscher por Strg+Alt+S (Windows) und klicken Sie dann auf Installieren (+) ein neues Gepäckstück.

enter image description here

  1. Geben Sie das Paket ein, das nicht von PyCharm aufgelöst wird, und klicken Sie dann auf Paket installieren . Dann klicken Sie OK .

enter image description here

Sie sehen nun, dass Ihre Bibliothek aufgelöst wurde.

1voto

Waqar Detho Punkte 1376

Ich habe alle anderen Projekte geschlossen und mein benötigtes Projekt isoliert in Pycharm ausgeführt. Ich erstellte eine separate Virtualenv von Pycharm und fügte alle benötigten Module mit pip hinzu. Ich fügte diese virtuelle Umgebung in den Interpreter des Projekts ein. Damit war mein Problem gelöst.

1voto

Wannes Goethals Punkte 81

In meinem Fall wird der Inspektionsfehler durch einen ganz bestimmten Fall von Python-Code ausgelöst. Eine min-Funktion, die zwei Numpy-Funktionen und zwei Listenzugriffe enthält, führt dazu, dass meine Code-Inspektion diese Art von Fehler anzeigt.

Das Entfernen der 'd=0'-Zeile im folgenden Beispiel führt erwartungsgemäß zu einem nicht aufgelösten Referenzfehler, aber das Lesen lässt den Fehler für den Code-Inspektor nicht verschwinden. Ich kann den Code danach immer noch 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 der Caches und das erneute Laden der Pfadliste funktioniert nicht. Nur das Ändern des Codes mit einem der folgenden Beispielpatches funktioniert:

  • Eine andere Anordnung der "min"-Parameter: schematisch S U T V, aber nicht S T U V oder T S U V
  • Verwendung einer Methode anstelle der Funktion: S[d].abs() anstelle von np.abs(S[d])
  • Verwendung der eingebauten Funktion abs()
  • Hinzufügen einer Zahl zu einem beliebigen Parameter: U[d] + 0.

1voto

Tim Punkte 284

Mensch, was für ein Albtraum, meine Zusammenstellung verschiedener StackOVerflow-Antworten:

  1. Wechseln Sie zum lokalen Interpreter /usr/bin/pythonX.X und wenden Sie
  2. Ansichtspfade wie obige Antwort
  3. Finde den Weg des Skeletts. Meiner war (/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
  4. Wechseln Sie zurück zum Virt-Interpreter und fügen Sie den Pfad zu den Skeletten manuell hinzu, falls er nicht automatisch angezeigt wird.

0voto

qwr Punkte 8006

Ich habe ein Projekt, bei dem eine Datei in src/ importiert eine andere Datei in dasselbe Verzeichnis. Damit PyCharm dies erkennt, musste ich zu Datei > Einstellungen > Projekt > Projektstruktur > wählen src und klicken Sie auf "Markieren als: Quellen"

Von https://www.jetbrains.com/help/pycharm/configuring-folders-within-a-content-Root.html

Quelle: Wurzeln enthalten die eigentlichen Quelldateien und Ressourcen. PyCharm verwendet die Quelltexte als Ausgangspunkt für die Auflösung von Importen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X