理解Python的导入__main__

时间:2014-11-18 18:20:46

标签: python import

我有一个名为My_Scripts.py的文件正在运行,它会导入field.py并尝试执行第globals.BitRate()行。但是我收到了一个错误:

AttributeError: 'module' object has no attribute 'BitRate'

import __main__在python中意味着什么? My_Scripts.py没有def main()

field.py

import __main__ as globals
globals.BitRate(..)
print globals

来自print globals的{​​{1}}打印:

field.py

1 个答案:

答案 0 :(得分:2)

由于某些原因,您的field.py要求主程序(在您的情况下为My_Scripts.py)导出名为BitRate的符号。尝试添加

def BitRate(*args, **kw):
    pass

My_Scripts.py

import __main__导入主模块,即python命令行上指示的模块。当您运行python My_Scripts.py时,My_Scripts.py将成为主要模块。这与任何特定模块是否实现def main():...无关。