このエラーに関する投稿はいくつかありますが、既に読んだことがありますが、何が間違っているのかまだわかりません。
これを最小限の例にまとめました。Doc.py と、Tool1.py と Tool2.py を含むパッケージ Tools があるとします。
Doc.py:
from Tools import *
import sys
def __main__():
TOOL_REPORT("Tool1","Test")
def TOOL_REPORT(tool, path):
if(tool == 'Tool1'):
Tool1.REPORT(path)
elif(tool == 'Tool2'):
Tool2.REPORT(path)
else:
sys.stderr.write("This tool is not yet included in Doc. Please check TOOLS for more information.")
if __name__=="__main__": __main__()
Tool1.py:
def REPORT(path):
print("Tool1 "+path)
Tool2.py:
def REPORT(path):
print("Tool2 "+path)
これを実行すると、常に次のエラーが発生します。
ファイル「Doc.py」、15 行目、TOOL_REPORT 内
Tool1.REPORT(パス)
NameError: グローバル名 'Tool1' が定義されていません
何が問題なのかについてのヒントをいただければ幸いです。