別の場所に 2 つの Python スクリプトがあります。最初の関数のグローバルと統合されるように、2 番目の関数をインポートしようとしています。それはうまくいきます。ただし、最初のスクリプトの関数を 2 番目のスクリプトから呼び出すと、関数が見つかりません。
foo.py
def run():
glob = {}
loc = {}
execfile("/path/to/bar.py", glob, loc)
currmodule = globals()
currmodule["func_in_bar"] = glob["func_in_bar"]
func_in_bar()
def func_in_foo_A():
print("fooA")
def func_in_foo_B():
print("fooB")
if __name__ == "__main__":
run()
bar.py
def func_in_bar():
func_in_foo_A()
func_in_foo_B()
foo を実行すると、次のように失敗します。NameError: global name 'func_in_foo_A' is not defined