python - 理解Python的导入__main__

标签 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

来自 field.pyprint 全局变量 打印:

<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/

相关文章:

java - 将 org.apache.commons 导入 android 应用程序

macos - 在 OSX 10.10.3 中导入单个证书后出现重复身份

python - 无法让 mod_wsgi 和 Apache 与 Django 一起工作

python - 断言错误: You cannot render this Element if it is not in a Figure

python - 取消rabbitmq与pika消耗的正确方法

python - 我无法导入带有目录的照片

c++ - 如何在#import c++ 命令中使用环境变量?

python - 导入给定模块对象的子模块

Python pandas Google finance international stocks - 寻找与谷歌获取国际股票价格历史的方法

Python 错误 : This method is only available to the class, 不在实例上