Python でモジュールを動的にインポートしようとしています。つまり、内部にモジュールを含む Python パッケージがあります。モジュール名を指定せずに、このモジュールへのポインターへの各モジュールの名前の辞書を保持したいと思います。
このディスカッションからの提案を使用しようとしました
私のディレクトリは次のとおりです。
foo/
__init__.py
bar1.py
bar2.py
私が使用するスクリプトは次のとおりです。
import pkgutil
import foo
for importer, name, ispkg in pkgutil.iter_modules(foo.__path__, foo.__name__ + "."):
print "Found submodule %s (is a package: %s)" % (name, ispkg)
module = __import__(name)
print "Imported", module
最初の反復で得られる出力は次のとおりです。
Found submodule foo.bar1 (is a package: False)
Imported <module 'foo' from '/path/to/foo/__init__.pyc'>
したがって、これを使用して bar1 モジュールを取得する代わりに、インポートで foo パッケージを取得します。
bar1 および bar2 モジュールを入手するにはどうすればよいですか?
pkgutil の使用が正しくない場合は、他の方法を使用できます。