私はプログラムディレクトリのextensions
サブディレクトリ内のモジュールのようなファイルがアプリケーションの初期化プロセスの早い段階でインポートされるこの機能を持つPythonアプリケーションを持っています。モンキーはこれをインポートするモジュールをパッチします
def do_init():
for thefname in glob.iglob(os.path.join(".","extensions","*")):
SourceFileLoader(os.path.basename(thefname),thefname).load_module()
#do other init stuff...
if __name__ == "__main__":
do_init()
do_cool_things()
:
これは、このような何か(これはmy_application.py
であると仮定)を探します
これは... my_application
の将来のインポートのために機能します。しかし、if __name__ == "__main__"
ガード内のdo_cool_things
コールは元の動作を示します。なぜこのようなことが起きているのですか?その呼び出しに変更された動作をどのように反映させることができますか?
これは動作します!そして、私はここで、モジュールの機能を、インポート機構を介してスタックを巻き戻すことによって取得しようとしています...:P – Schilcote