2009-03-28 3 views
-2

Ich bin ein Neuling für Python. Ich habe zwei Module. Modell M1 und Modul m2. Von m2 muss ich m1 und m2 beziehen und m1 befindet sich an zwei verschiedenen Orten auf der Festplatte.Auflösen von Abhängigkeit in Python zwischen Modulen

Wenn ich versuche, m1 vor der Ausführung von m2 zu importieren, sagt man natürlich, dass m1 nicht gefunden werden kann. Wie kann ich meinen Dolmetscher auf den Standort von m1 verweisen?

Dank J

+0

-1: Kein Code. -1: Keine tatsächlichen Fehlermeldungen. –

Antwort

3

Es ist nicht ganz klar, was Ihr Problem ist (weitere Details geben!), Aber Sie können diese sinnvoll (weitere googeln hilft Ihnen konkrete Antworten für Ihre spezifischen Bedürfnisse zu erreichen) finden:

  • Die Umgebungsvariable PYTHONPATH
  • .pth Dateien in Verzeichnissen, die
  • Manipulieren sys.path sein in PYTHONPATH erscheinen mit packages Vordergrund jedoch

importieren, wenn m2 auf m1 abhängt, und sie sind zusammen verteilt, vielleicht ist es eine bessere Idee, sie in dem gleichen Verzeichnisbaum zu legen.

2

Wenn Sie die Shell-Umgebung nicht ändern können, können Sie alle Verzeichnisse anfügen, in denen der Interpreter innerhalb Ihres Skripts nach Modulen nach sys.path suchen soll. Tatsächlich wird die PYTHONPATH Umgebungsvariable gelesen und verwendet, um sys.path zu initialisieren.

0

Was möglich ist, hängt von den Details der Module, aber in der Regel können Sie nur die Besonderheiten Objekte aus den Modulen, wie dies erforderlich importieren:

in B.py

from A import classA1, funA1 

in A.py

from B import classB1, funB1 

so dass Sie nur importieren, was benötigt wird. Wenn die Abhängigkeiten komplexer sind, funktioniert das möglicherweise nicht, aber im Allgemeinen sollte es möglich sein (es sei denn, Sie haben tatsächlich echte gegenseitige, rekursive Abhängigkeiten auf der Objektebene, die Sie nicht auflösen können!).