8

多数の共有 python モジュールを持つ python プログラムのコレクションによって生成された一連の C ファイルがあり、make システムでこれを考慮する必要があります。

各 C ファイルを生成するためにどの python プログラムを実行する必要があるかを列挙するのは簡単です。良い解決策が見つからないのは、それらのプログラムが依存している他の python ファイルを特定することです。これが必要なので、共有されている python ファイルの 1 つが変更された場合、make は再生成が必要なものを認識します。

Python ソースのコレクションから make スタイルの依存関係ルールを生成するための優れたシステムはありますか?

4

2 に答える 2

3

modulefinderを使用して、依存関係グラフを取得できます。

于 2008-10-24T03:24:37.393 に答える
1

ステートメントは、importそこにあるほとんどすべての依存関係です。import ステートメントには、関連する 2 つの形式があります。

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

の構築に使用されるPYTHONPATHとの情報も必要です。これは、モジュールとパッケージの物理的な場所を示しています。sitessys.path

インポートするすべてのモジュールのすべてのインポートを推移的に閉じる必要があるため、これは処理が面倒です。

別の方法として、-vインポートおよび物理ファイルの完全なリストを取得するオプションを使用できます。これにより、依存関係のフラット リストに編集できるログが生成されます。

たとえば、私がするとき

>>> import math

これはログに表示されます

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
于 2008-10-24T01:50:50.920 に答える