553 Stimmen

Unresolved Referenzproblem in PyCharm

Ich habe eine Verzeichnisstruktur

 simulate.py
 src
    networkAlgorithm.py
    ...

Und ich kann auf das Netzwerkmodul mit sys.path.insert() zugreifen.

import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *

Allerdings beschwert sich PyCharm, dass es nicht auf das Modul zugreifen kann. Wie kann ich PyCharm beibringen, die Referenz aufzulösen?

Bildbeschreibung eingeben

1voto

kishs1991 Punkte 1029

Bitte überprüfen Sie, ob Sie den richtigen Interpreter verwenden, den Sie verwenden sollen. Ich habe den Fehler "unresolved reference 'django' " bekommen, um dies zu lösen, habe ich den Projektinterpreter geändert (von Python 3 auf Python 2.7) in den Projekteinstellungen: Wählen Sie das Projekt aus, gehen Sie zu Datei -> Einstellungen -> Projekt: -> Projektinterpreter -> Durchsuchen und wählen Sie die richtige Version oder den Interpreter aus (z.B. /usr/bin/python2.7).

1voto

Pozinux Punkte 724

Für meinen Fall :

Verzeichnis0
     Verzeichnis1
          datei1.py  
     Verzeichnis2
          datei2.py  

In der datei1 habe ich :

aus Verzeichnis2 import datei2

das wirft einen "ungelösten Verweis Verzeichnis2" auf.

Ich habe es gelöst, indem ich:

  • den übergeordneten Verzeichnis Verzeichnis0 als "Source Root" markiere, wie oben erwähnt

UND

  • meinen Cursor auf eine andere Zeile in der Datei platziere, in der ich den Fehler hatte, damit meine Änderung berücksichtigt wird

Es ist albern, aber wenn ich die zweite Aktion nicht ausführe, erscheint der Fehler immer noch und man könnte denken, dass man das Problem nicht gelöst hat, indem man das übergeordnete Verzeichnis als Source Root markiert.

1voto

user2233949 Punkte 1775

Ich habe hier alles zweimal und noch mehr versucht. Letztendlich habe ich es gelöst, indem ich etwas gemacht habe, das ich nirgendwo online gesehen habe. Wenn du zu Einstellungen>Editor>Dateitypen gehst, gibt es eine 'Ignoriere Dateien und Ordner' Zeile ganz unten. In meinem Fall habe ich 'venv' ignoriert, was ich immer für meine virtuellen Umgebungen benenne. Also habe ich venv; aus der Liste der zu ignorierenden Verzeichnisse entfernt und VOILA!! Ich konnte DAS PROBLEM ENDLICH lösen. Alle meine Importprobleme für das Projekt wurden buchstäblich behoben.

Übrigens hatte ich jedes Paket mit PyCharm installiert, nicht über ein Terminal. (Das heißt, indem ich zu Einstellungen>Interpreter... gegangen bin). Ich hatte den Cache ungültig gemacht, 'Quelle-Root' geändert, PyCharm neu gestartet, meine Interpreter-Pfade aktualisiert, Interpreter geändert, meinen venv gelöscht... Ich habe alles versucht. Das hat schließlich funktioniert. Offensichtlich gibt es hier verschiedene Probleme mit unterschiedlichen Personen, daher funktioniert dies möglicherweise nicht für dich, aber es lohnt sich auf jeden Fall, es auszuprobieren, wenn nichts anderes funktioniert hat, und ist einfach rückgängig zu machen, wenn es nicht funktioniert.

1voto

Burhan U Din Punkte 11

Erledigt in PyCharm 2019.3.1 Mit der rechten Maustaste auf Ihren src-Ordner klicken -> "Verzeichnis markieren als" -> Auf "Ausgeschlossen" klicken und Ihr src-Ordner sollte blau sein.

1voto

Dan Punkte 493

In meinem Fall lag das Problem daran, dass ich Virtual Environment verwendet habe, das keinen Zugriff auf globale site-packages hatte. Somit war der Interpreter nicht über die neu installierten Pakete informiert.

Um das Problem zu lösen, bearbeiten Sie einfach Ihren virtuellen Interpreter oder erstellen Sie ihn neu und aktivieren Sie die Option Globale site-packages erben.

Bildbeschreibung hier eingeben

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