ここでは、ディレクトリ内のすべてのモジュールを動的にインポートする(量/名前は不明)と、見つかったモジュールごとにcheckMeという関数を呼び出すことを試みています)。 checkMe()は各モジュール内にあることが保証されているので、チェックする必要はありません。これは私がこれまで持っているものです。動的なモジュールのリストからメソッドを呼び出す
checkMe()for module in __modules__:
m = getattr(sys.modules[__name__], module)
getattr(m, 'checkMe').__call__()
しかし、私はこのエラーを取得する呼び出す
インポート
import sys
import os
import glob
pathname = os.path.dirname(sys.argv[0]) + "/"
pathname = pathname + "/modules/"
__modules__ = [ os.path.basename(f)[:-3] for f in glob.glob(os.path.dirname(pathname)+"/*.py")]
for module in __modules__:
__import__(module)
:
AttributeError: 'module' object has no attribute 'sendme'
(SENDMEを最初のモジュールです)
ご協力いただきありがとうございます...ありがとうございます!
あなたは 'pathname'、' __modules__'のために得るかを示すために、いくつかのprint文を追加します。それがあるので、パスでモジュールを実行すると、(:Pythonの2.7以降が必要run_pathコメントから)
runpy
と最も簡単です –私は輸入がうまくいっていると確信しています...私はそれをデバッグしました。 – pdeuchler
これは '__module__'で終わるものを見るのに役立つかもしれません。変数に代入するときはいつでもprintステートメントを追加して、アプリケーション全体の状態を追跡し、どこが間違っているのかを把握することができます。 –