三日月館【別館】開発・制作Tips集
[Python] パッケージ内の全モジュールを動的に取得する
最終更新:
fumiduki1985
-
view
pkgutilモジュールを使用することで可能。
詳細は省くのでPythonリファレンスマニュアルのplgutilの項目を参照されたし。
詳細は省くのでPythonリファレンスマニュアルのplgutilの項目を参照されたし。
記述例:
import os import pkgutil import user_package # モジュール検索対象のパッケージ # パッケージのフォルダを取得する packageFile = user_package.__file__ packageDir = os.path.dirname(packageFile) # パッケージ内のモジュールを検索する for moduleFinder, moduleName, isPackage in plgutil.iter_modules([packageDir]): # モジュールの検索 moduleLoader = moduleFinder.find_module(moduleName) if moduleLoader is None: continue # モジュールのロード module = moduleLoader.load_module(moduleName) if module is None: continue # この時点で取得できるmoduleがPythonのモジュールオブジェクトとなる。 # inspect.getmembers()に渡してクラスの一覧を取得するといった処理に利用可能