Ich habe eine Python-Anwendung, die eine Verzeichnisstruktur wie diese hat.python __import __() importiert aus 2 verschiedenen Verzeichnissen wenn das selbe Modul an 2 Stellen existiert
-pythonapp
-mainpython.py
-module1
-submodule1
-file1.py
-file2.py
-submodule2
-file3.py
-file3.py
-submodule3
-file1.py
-file2.py
-file5.py
-file6.py
-file7.py
, wenn ich versuche, den Python-Dienstprogramme (von mainpython.py) unter submodule3 zu importieren, erhalte ich die ersten 2-Dateien von submodule1. (Bitte, dass submodule1 beachten und 3 haben zwei unterschiedliche Dateien mit dem gleichen Namen). Derselbe Import funktioniert jedoch einwandfrei, wenn kein Konflikt vorliegt, d. H. Die Datei 5,6,7 wird korrekt aus Submodul 3 importiert. Hier
ist der Code:
name=os.path.splitext(os.path.split("module1\submodule3\file1.py")[1])[0] --> file1.py name here is passed dynamically.
module = __import__(name)
// Hier ist der Name ist wie „file1“ es funktioniert (aber mit dem oben genannten Problem, obwohl, wenn übergibt den Namen der Datei dynamisch), aber wenn Ich übergebe das komplette Paket als "module1module1.file1" es schlägt mit einem ImportError fehl, dass "kein Modul mit dem Namen file1"
Nun die Frage ist, wie wir dem Interpreter sagen, nur die unter "module1modul3" zu verwenden .file2 "? Ich benutze Python
Dies ist wirklich dringend ein und ich habe alle Versuche aus. Hoffentlich können einige erfahrene Python-Entwickler das für mich lösen?
Können Sie bitte Ihre Frage neu formatieren? –
Warum benutzen Sie '__import__'? Warum nicht einfach 'von module1module3 import filex'? – aaronasterling