logo

Python – Modul aus einem anderen Verzeichnis importieren

Bei der Arbeit an großen Projekten kann es vorkommen, dass wir mit der Situation konfrontiert werden, dass wir etwas importieren möchten Modul aus einem anderen Verzeichnis. Aus irgendeinem Grund wird das Modul jedoch möglicherweise nicht korrekt importiert. Machen Sie sich jetzt keine Sorgen, wenn Ihr Modul nicht korrekt importiert wird. In diesem Artikel besprechen wir Möglichkeiten zum Importieren eines Moduls aus einem anderen Verzeichnis.

Notiz: Ein Modul ist einfach ein Python-Programm, das mit endet .py Erweiterung und ein Ordner, der ein Modul enthält, wird zu einem Paket.



Verzeichnisaufbau:

 - Folder_1 - main.py - Folder_2 - module1.py>

Nehmen wir an, wir haben zum Importieren einer Datei in Python zwei verschiedene Ordner. Einer enthält main.py, unsere Haupt-Python-Datei, in die wir Modul1 aus Ordner_2 importieren möchten.

Modul 1: enthält zwei Funktionen namens add und odd_even. Die Funktion add nimmt zwei Argumente entgegen und gibt deren Addition zurück. Die Funktion odd_even benötigt nur einen Streit und drucken Sie Even, wenn die Zahl gerade ist, oder drucken Sie Odd, wenn die Zahl ungerade ist.



module1.py

Python3



String in int umwandeln




# creating a simple add function> def> add(a, b):> >return> a>+>b> # creating a simple odd_even function> # to check if the number is odd or even> def> odd_even(n):> >if> n>%> 2> =>=> 0>:> >print>(>'Even'>)> >else>:> >print>(>'Odd'>)>

>

>

Wenn wir einfach versuchen zu importieren Modul 1 aus Ordner_2, Wir werden auf den folgenden Fehler stoßen.

main.py

Python3




# importing module1 from another folder> import> Folder_2> # calling odd_even function> module1.odd_even(>5>)>

>

>

Ausgabe:

Fehler

Lesen aus einer CSV-Datei in Java

ModuleNotFoundError , da der Python-Interpreter standardmäßig nur im aktuellen Verzeichnis nach der Datei sucht und wir den Dateipfad manuell festlegen müssen, um die Module aus einem anderen Verzeichnis zu importieren. Wir können dies auf verschiedene Arten tun. Diese Möglichkeiten werden im Folgenden ausführlich besprochen.

Methode 1: Modul aus einem anderen Verzeichnis mithilfe des sys-Moduls importieren

Wir können benutzen sys.pfad um den Pfad des neuen anderen Ordners (des Ordners, aus dem wir die Module importieren möchten) zum Systempfad hinzuzufügen, damit Python auch in diesem Verzeichnis nach dem Modul suchen kann, wenn es das Modul nicht in seinem aktuellen Verzeichnis findet. Als sys.pfad fällt unter die Listentypklasse Daher können wir den Ordnerpfad problemlos mit der Einfügemethode hinzufügen.

Python3




# importing sys> from> module1>import> odd_even, add> import> sys> # adding Folder_2 to the system path> sys.path.insert(>0>,>'/home/amninder/Desktop/Folder_2'>)> # importing the add and odd_even> # function> # calling odd_even function> odd_even(>5>)> # calling add function> print>(>'Addition of two number is :'>, add(>2>,>2>))>

>

>

Ausgabe :

Multithreading in Java

Mit sys

Methode 2: Verwendung des PYTHONPATH Umgebungsvariable

Ebenso, wenn Sie das nicht verwenden möchten sys Modul, um den Pfad des neuen Verzeichnisses festzulegen. Sie können der Variablen PYTHONPATH einen Verzeichnispfad zuweisen und Ihr Programm trotzdem zum Laufen bringen.

In Linux , können wir im Terminal den folgenden Befehl verwenden, um den Pfad festzulegen:

export PYTHONPATH=’Pfad/zum/Verzeichnis’

Im Windows-System:

SET PYTHONPATH=Pfad/zum/Verzeichnis

Um zu sehen, ob die Variable PYTHONPATH den Pfad des neuen Ordners enthält, können wir den folgenden Befehl verwenden:

Echo $PYTHONPATH

Python3




# importing the add and odd_even function> from> module1>import> odd_even, add> # calling odd_even function> odd_even(>5>)> # calling add function> print>(>'Addition of two number is :'>, add(>2>,>2>))>

>

>

Ausgabe:

Verwenden von PYTHONPATH

Angenommen, wir haben eine Verzeichnisstruktur wie diese:

- project - Folder_1 - main.py - Folder_2 - subfolder - new.py>

Jetzt möchten Sie das importieren new.py Modul von Ordner_2 in den Ordner_1 unseres Projekts main.py Datei.

Syntax:

aus project.folder.subfolder.filename Funktionsname importieren

Python3




Hoppla

# importing sys> import> sys> # adding Folder_2/subfolder to the system path> sys.path.insert(>0>,>'/home/amninder/Desktop/project/Folder_2/subfolder'>)> # importing the hello> from> new>import> hello> # calling hello function> hello()>

>

>

Ausgabe:

Ausgabe