一般的に私のプロジェクトのコードが実際に大きなフレームワークからどのようなコードを使用しているのかを理解したいと思います。Pythonプロジェクトのインポートを分析する
まず、すべてのインポート(静的分析の可能性があります)と、可能であればこれらのインポートのうちのどれが実際に使用されているかを知りたいと思います。
最初の問題については、もちろん正規表現を使用できますが、よりクリーンな方法を探したいと思います。 しかし、私はast/inspect/parserでどのように見えません。
2番目の問題については、輸入の一部が実際には使用されていない場合に自動的に見つかるはずですが、どうしたらいいですか?
EDIT: おそらく最も良い方法は、インポートされたすべてを記録し、次にデフォルトのインポートメカニズムを呼び出す単純なインポートフックです。
class MyLoader(object):
"""
Loader object
"""
def __init__(self):
self.loaded = set()
def find_module(self, module_name, package=None):
print("requesting %s" % module_name)
self.loaded.add(module_name)
return self
def load_module(self, fullname):
fp, pathname, stuff = imp.find_module(fullname)
imp.load_module(fullname, fp, pathname, stuff)
しかし、「ランダム」私は 将来からの輸入部門 はImportErrorを取得インポートしようとしている:いいえモジュールの名前将来、私は手段を考える
は、だから私のような何かを試してみました私は何かが欠けている.. 私はいくつかのインポートイントロスペクション、任意のヒントを行うためにimpを使用する任意の簡単な例を発見していない?
必ずはい、本当に静的解析は非常にうまく機能しません何が起こるかの明確な見解を持っています。しかし、Pylintはかなり良い仕事をしていますが、私はそれがコードの重い構文解析仕事をしていると思います。 輸入者プロトコルでの私の試みについては、上記を参照してください。 –