You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中__main__.py模块导入后调用异常的原因咨询

问题原因分析:为什么导入__main__找不到main函数?

咱们先搞懂Python里__main__这个特殊模块的核心逻辑:

当你直接运行一个Python脚本文件时,这个脚本会被Python解释器标记为__main__模块——简单说,谁被直接运行,谁就是__main__。

第一个场景:运行test.py无输出的原因

当你执行python test.py时,test.py本身就是当前的__main__模块。这时候你写import __main__,其实是在导入test.py自己,根本没碰同目录下的__main__.py。

  • 只有当你直接运行__main__.py(比如python __main__.py)时,它里面的print(__name__)才会执行。你现在运行的是test.py,__main__.py完全没被触发,所以自然没输出。

第二个场景:报错AttributeError的原因

你修改代码后,运行test.py的逻辑本质没变:

  1. test.py依然是被直接运行的脚本,所以它是当前的__main__模块;
  2. 这时候import __main__导入的还是test.py自己,而你的test.py里根本没定义main()函数;
  3. 所以调用__main__.main()时,Python自然会报错说找不到这个属性。

怎么解决这个问题?

如果你想调用__main__.py里的main()函数,别用__main__这个特殊名字导入——把__main__.py改个普通名字,比如my_main.py,然后在test.py里这么写:

import my_main
my_main.main()

这样就能正常调用了。

另外补充一句:__main__.py通常是给Python包用的——当你用python -m 你的包名运行整个包时,包目录下的__main__.py会被当作入口执行,这时候它才会成为__main__模块。

内容的提问来源于stack exchange,提问作者lyzMaster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:35:56