In diesem Artikel erfahren Sie, wie Sie ein Modul aus dem übergeordneten Verzeichnis importieren. Ab Python 3.3 ist das Referenzieren oder Importieren eines Moduls im übergeordneten Verzeichnis nicht mehr zulässig. Anhand des folgenden Beispiels können Sie dies deutlich verstehen.

Im übergeordneten Verzeichnis haben wir ein Unterverzeichnis, die Datei „geeks.py“, und im Unterverzeichnis eine Python-Datei mit dem Namen „temp.py“. Versuchen wir nun, ob wir das Modul „geeks“ im übergeordneten Verzeichnis aus der Datei „temp.py“ importieren können das Unterverzeichnis.
geeks.py (Modul im übergeordneten Verzeichnis)
Python3
So finden Sie versteckte Apps auf Android
def> geek_method():> > print> (> 'This method in geeks module.......bye'> )> |
>
>
temp.py (Python-Datei im Unterverzeichnis)
Python3
Laden Sie YouTube-Videos VLC herunter
# importing the module in> # parent directory> from> parentdirectory> import> geeks> # calling the func1() method> # from geeks module> geeks.geek_method()> |
>
>
Wie wir bereits besprochen haben, ist es nicht möglich, ein Modul aus dem übergeordneten Verzeichnis zu importieren, was zu einem Fehler wie diesem führt.
Traceback (letzter Anruf zuletzt):
Datei C:/Users/sai mohan pulamolu/Desktop/parentdirectory/subdirectory/temp.py, Zeile 2, in
von Parentdirectory Import Geeks
ModuleNotFoundError: Kein Modul namens „parentdirectory“
Jetzt lernen wir, wie man ein Modul aus importiert übergeordnetes Verzeichnis:
Um ein Modul zu importieren, muss das Verzeichnis mit diesem Modul in PYTHONPATH vorhanden sein. Es handelt sich um eine Umgebungsvariable, die die Liste der Pakete enthält, die von Python geladen werden. Die Liste der in PYTHONPATH enthaltenen Pakete ist auch in sys.path vorhanden und fügt daher den übergeordneten Verzeichnispfad hinzu sys.pfad.
Für unsere Arbeit nutzen wir drei unterschiedliche Ansätze, die im Folgenden anhand von Beispielen erläutert werden.
Methode 1: Import aus dem übergeordneten Verzeichnis mit der Methode sys.path
Hier verwenden wir das sys-Modul und legen den Pfad direkt zum erforderlichen Modul fest.
Fügen Sie das übergeordnete Verzeichnis hinzu sys.pfad Verwendung der append() Methode . Es handelt sich um eine integrierte Funktion des sys-Moduls, die mit einer Pfadvariablen verwendet werden kann, um einen bestimmten Pfad für die Suche durch Interpreter hinzuzufügen. Wie das gehen kann, zeigt das folgende Beispiel.
Python3
Größe von Python
import> sys> # setting path> sys.path.append(> '../parentdirectory'> )> # importing> from> parentdirectory.geeks> import> geek_method> # using> geek_method()> |
>
>
Ausgabe:
This method in geeks module.......bye>
Methode 2: Importieren aus dem übergeordneten Verzeichnis mit os.path.abspath()-Methode
Hier verwenden wir das sys-Modul sowie das Pfadmodul zum Abrufen des Verzeichnisses und legen den Pfad direkt auf das erforderliche Modul fest.
Syntax: os.path.abspath(Pfad)
Parameter:
Weg: Ein pfadähnliches Objekt, das einen Dateisystempfad darstellt.Rückgabetyp: Diese Methode gibt eine normalisierte Version des Pfadnamens path zurück.
Zuerst ermitteln wir den Namen des Verzeichnisses, in dem sich die temp.py-Datei derzeit befindet, indem wir path.path(__file__) verwenden. abspath(), zweitens das Verzeichnis zum hinzufügen sys.pfad .append zur Überprüfung, wir werden seine Methode verwenden.
Python3
b+ Baum
import> path> import> sys> # directory reach> directory> => path.path(__file__).abspath()> # setting path> sys.path.append(directory.parent.parent)> # importing> from> parentdirectory.geeks> import> geek_method> # using> geek_method()> |
>
>
Ausgabe:
This method in geeks module.......bye>
Methode 3: Importieren aus dem übergeordneten Verzeichnis mit os.path.dirname Methode
Hier verwenden wir sowohl das sys-Modul als auch das os-Modul, um das Verzeichnis (aktuelles und übergeordnetes Verzeichnis) abzurufen und legen den Pfad direkt auf das erforderliche Modul fest.
Syntax: os.path.dirname(path)
Parameter:
Weg : Ein pfadähnliches Objekt, das einen Dateisystempfad darstellt.jbuttonRückgabetyp: Diese Methode gibt einen Zeichenfolgenwert zurück, der den Verzeichnisnamen aus dem angegebenen Pfad darstellt.
Erstens erhalten wir das aktuelle Verzeichnis mithilfe von os.path.dirname (os.path.realpath(__file__)), zweitens erhalten wir das übergeordnete Verzeichnis mithilfe von os.path.dirname() und fügen schließlich das übergeordnete Verzeichnis hinzu Verzeichnis zum sys.pfad Um dies zu überprüfen, verwenden wir seine Methode.
Python3
import> sys> import> os> # getting the name of the directory> # where the this file is present.> current> => os.path.dirname(os.path.realpath(__file__))> # Getting the parent directory name> # where the current directory is present.> parent> => os.path.dirname(current)> # adding the parent directory to> # the sys.path.> sys.path.append(parent)> # now we can import the module in the parent> # directory.> import> geeks> geeks.geek_method()> |
>
>
Ausgabe: