Frage

Ich habe eine Reihe von C -Dateien, die durch eine Sammlung von Python -Programmen generiert werden, die über eine Reihe gemeinsamer Python -Module verfügen, und ich muss dies in meinem System -System berücksichtigen.

Es ist leicht genug zu zählen, welches Python -Programm ausgeführt werden muss, um jede C -Datei zu generieren. Was ich keine gute Lösung finden kann, ist die Bestimmung, welche anderen Python -Dateien diese Programme abhängen. Ich brauche dies, damit die Make wissen wird, was sich regeneriert, wenn sich eine der gemeinsam genutzten Python -Dateien ändert.

Gibt es ein gutes System zur Herstellung von Regeln für Stilabhängigkeit aus einer Sammlung von Python -Quellen?

War es hilfreich?

Lösung

Andere Tipps

Das import Aussagen sind so ziemlich alle Abhängigkeiten, die es gibt. Es gibt zwei relevante Formulare für die Importanweisungen:

import x, y, z
from x import a, b, c

Sie werden auch die brauchen PYTHONPATH und sites Informationen, die zum Erstellen verwendet werden sys.path. Dies zeigt die physischen Stellen der Module und Pakete.

Das ist schmerzhaft zu verarbeiten, da Sie den transitiven Verschluss aller Importe in allen von Ihnen importierten Modulen durchführen müssen.

Als alternativer Ansatz können Sie die verwenden -v Option, um die vollständige Liste der Importe und physischen Dateien zu erhalten. Dies erzeugt ein Protokoll, das Sie in eine flache Liste von Abhängigkeiten bearbeiten können.

Zum Beispiel, wenn ich es tue

>>> import math

Ich sehe das im Protokoll

dlopen("/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so", 2);
import math # dynamically loaded from /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top