Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich ein Modul aus einem verschachtelten Ordner in Python importieren?

Wie kann ich ein Modul aus einem verschachtelten Ordner in Python importieren?

Linda Hamilton
Freigeben: 2024-12-23 09:10:45
Original
551 Leute haben es durchsucht

How Can I Import a Module from a Nested Folder in Python?

Module aus verschachtelten Ordnern importieren

Das Importieren von Dateien aus verschiedenen Ordnern innerhalb eines Projekts kann in Python eine Herausforderung sein. Lassen Sie uns ein Szenario und seine Lösung untersuchen.

Frage:

Bedenken Sie die folgende Ordnerstruktur:

application
├── app
│   └── folder
│       └── file.py
└── app2
    └── some_folder
        └── some_file.py
Nach dem Login kopieren

Wie können Sie eine Funktion mit dem Namen importieren func_name von file.py in some_file.py?

Antwort:

Der typische Ansatz der Verwendung von „from application.app.folder.file import func_name“ funktioniert nicht. Dies liegt daran, dass der Standard-Importsuchpfad von Python keine Unterverzeichnisse enthält.

Lösung:

Um diese Einschränkung zu umgehen, können Sie den Python-Suchpfad zur Laufzeit durch Hinzufügen ändern das gewünschte Verzeichnis in sys.path, bevor Sie das Modul importieren. Hier ist ein Beispiel in some_file.py:

import sys
# Caution: path[0] is reserved for the script path or '' in REPL
sys.path.insert(1, '/path/to/application/app/folder')

import file
Nach dem Login kopieren

Dadurch können Sie über das importierte Modul auf die Funktion zugreifen als:

file.func_name()
Nach dem Login kopieren

Hinweis:

Dieser Ansatz ist für sehr spezifische Szenarien gedacht. Typischerweise ist die Strukturierung Ihres Codes in Pakete eine bevorzugtere Lösung für Modularität und Wartbarkeit.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Modul aus einem verschachtelten Ordner in Python importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage