1

スクリプトは非常に複雑で、通常は何時間も実行されるため、実際にスクリプトを実行する前に、スクリプトによってインポートされたすべてのモジュールがインストールされているかどうかを確認したいと思います。また、渡されたオプションに応じて異なるモジュールをインポートする場合があるため、一度実行しただけではすべてをチェックできない場合があります。したがって、このスクリプトを新しいシステムで数時間実行して、モジュールが見つからないために完了する前に失敗するのを確認したくありません。

どうやら、pyflakes と pychecker はここでは役に立ちません。間違っている場合は修正してください。私はこのようなことができます:

$ python -c "$(cat *.py|grep import|sed 's/^\s\+//g'|tr '\n' ';')"

ただし、それほど堅牢ではありません。たとえば、「インポート」という単語が文字列に表示されると壊れます。

では、どうすればこのタスクを適切に実行できますか?

4

2 に答える 2

7

ドキュメント の例を使用して、標準のlibmodulefinderからModuleFinderを使用できます。

from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script('bacon.py')

print 'Loaded modules:'
for name, mod in finder.modules.iteritems():
    print '%s: ' % name,
    print ','.join(mod.globalnames.keys()[:3])

print '-'*50
print 'Modules not imported:'
print '\n'.join(finder.badmodules.iterkeys())
于 2013-03-04T11:52:46.640 に答える
0

test.pyたとえば、可能なすべてのインポートを含む を書くことができます。

import these
import are
import some
import modules

実行すると、何か問題があれば Python が知らせてくれます

于 2013-03-04T11:41:01.883 に答える