2017-07-28 6 views
0

PythonまたはIPythonインスタンスを実行してイントロスペクションすることによって、必要なパッケージを一覧表示するにはどうすればよいですか?Pythonでイントロスペクションで必要なパッケージを一覧表示する

私は多くの場合、完全なAnacondaディストリビューションと完全インストールされた非常に負荷の高いconda環境から開発を開始します。私がコードを共有したいときは、pipのためにrequirements.txtを吐き出すか、またはインタープリタに入っているパッケージのみで構成されるcondaのためにenvironment.ymlを吐き出すことができます。

どうすればいいですか?

+2

ロードされたモジュールからパッケージへの適合は複雑な作業になります。一般的に私は空の環境で開発を始めることをお勧めします。 –

+1

@Klausはそのようなマッピングを維持しませんか? –

+0

ロードされたモジュールの名前を取得するのは簡単ですが、必ずしもcondaまたはpipに必要な名前である必要はありません。また、組み込みの「プライベート」モジュールが多数リストに含まれています。 –

答えて

3

モジュールのスクリプトをテストするために、python組み込みパッケージmodulefinderを使用することができます。次のようなものがあります。

from modulefinder import ModuleFinder 

finder = ModuleFinder() 
finder.run_script('bacon.py') 

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

print('-'*50) 
print('Modules not imported:') 
print('\n'.join(finder.badmodules.keys())) 
関連する問題