Question

J'ai un tas de fichiers C générés par une collection de programmes python partageant un certain nombre de modules python partagés et je dois en tenir compte dans mon système Make.

Il est assez facile d’énumérer le programme python à exécuter pour générer chaque fichier C. Ce que je ne peux pas trouver, c'est de déterminer à quels autres fichiers python ces programmes dépendent. J'ai besoin de cela, donc make saura ce qui doit être régénéré si l'un des fichiers python partagés change.

Existe-t-il un bon système pour produire des règles de dépendance de style à partir d'une collection de sources Python?

Était-ce utile?

La solution

Autres conseils

Les instructions import correspondent à peu près à toutes les dépendances existantes. Il existe deux formulaires pertinents pour les instructions d'importation:

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

Vous aurez également besoin des informations PYTHONPATH et des sites utilisées pour générer sys.path . Cela montre les emplacements physiques des modules et des packages.

C'est un peu pénible à traiter, car vous devez procéder à la fermeture transitive de toutes les importations dans tous les modules que vous importez.

Vous pouvez également utiliser l'option -v pour obtenir la liste complète des importations et des fichiers physiques. Cela crée un journal que vous pouvez modifier dans une liste non hiérarchique de dépendances.

Par exemple, quand je le fais

>>> import math

Je vois ceci dans le journal

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top