我正在运行一个名为 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
来自 field.py
的 print 全局变量
打印:
<module '__main__' from My_Scripts.py'>
最佳答案
您的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():...
无关。 .
关于python - 理解Python的导入__main__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001255/