logo

Python – Aus übergeordnetem Verzeichnis importieren

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.

jbutton

Rü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: