2017-07-27 14 views
1

Hier ist meine Ordnerstruktur:Probleme, aus Stammverzeichnis zu importieren Python-Modul in PyCharm

lib\ 
    pt_hil\ 
     utilities\ 
      PT_HILdSPACE_Utils\ 
       exception\ 
        __init__.py --> has "class SimulatorException(Exception):" 
       pythonScript.py 

ich das Projekt aus dem Ordner „lib“ in PyCharm geöffnet. Im „pythonScript.py“ Skript, wenn ich versuche, SimulatorException zu importieren, indem Sie:

from pt_hil.utilities.PT_HIL_dSPACE_Utils.exception import SimulatorException 

Es funktioniert nicht. Aber wenn ich das tue:

from exception import SimulatorException 

Es funktioniert. Sollte das Root-Verzeichnis nicht aus dem lib-Ordner stammen? Wenn ich in Einstellungen suche, wird der Inhaltsstamm auf den lib-Ordner gesetzt.

Antwort

1

Einer der Zwecke einer Datei __init__.py ist, das Verzeichnis als ein gültiges Python-Paket zu markieren, das Sie import können.

Sie haben nur den Ordner exception als gültiges Python-Paket deklariert, und daher ist dies das Root-Paket, von dem aus Sie importieren können.

Es ist entweder Sie durch Hinzufügen von leeren __init__.py Dateien auf jedem Top-Level-Ordner, den Sie Top-Level-Pakete erstellen und können dann importieren, wie Sie ursprünglich wollten, oder halten Sie die aktuelle Struktur und Import direkt aus exception Paket.

Verwandte Themen