Howto importieren Module mit Abhängigkeiten im gleichen absoluten / relativen Pfad mit imp?

9

Gibt es eine Möglichkeit, Module mit Abhängigkeiten innerhalb desselben Verzeichnisses unter Verwendung eines absoluten / relativen Pfades mit "imp" zu importieren?

Hier folgt die Verzeichnisstruktur:

%Vor%

-Datei test.py importiert dependant.py mit:

%Vor%

importiert wiederum dependency.py direkt mit:

%Vor%

Aufruf von test.py gibt

%Vor%

Es kann sich lohnen, load_source den Pfad zum geladenen Modul zum Loader hinzuzufügen, damit es seine relativen Abhängigkeiten automatisch findet. Die einzige Alternative, die ich gefunden habe, ist jetzt das Hinzufügen zum Systempfad, indem test.py

hinzugefügt wird

Bearbeiten: Ich habe einen besseren Weg gefunden, den relativen Import mit Pfad durchzuführen, Datei hinzugefügt, um den absoluten Pfad des Aufrufers zu erhalten (unabhängig vom aktuellen Arbeitsverzeichnis)

%Vor%     
a1an 30.01.2012, 16:01
quelle

2 Antworten

0

IMO dies ist nicht machbar mit load_source , das notwendige Dinge nicht tut, so dass der Import in Ihrer 'dependant.py' Datei das übergeordnete Verzeichnis berücksichtigt.

Sie sollten entweder das tun, was vorgeschlagen wurde ( __init__.py im Verzeichnis und absoluter Import im Modul), oder niedrigere find_module / load_module Funktionen verwenden, die diese Art von Dingen erlauben (siehe find_module 'Pfad' Argument)

    
sthenault 31.01.2012, 13:27
quelle
0

Sie müssen __init__.py in importFrom Verzeichnis haben.

%Vor%

Anstatt dependant in test zu importieren, habe ich den Python-Interpreter benutzt, um die Ausgabe anzuzeigen. In dependant.py , dependance wird importiert.

    
Kracekumar 30.01.2012 16:13
quelle

Tags und Links