长话短说,当从父目录,子目录,兄弟目录,同目录,import一个模块的函数,类等等,如果出了问题,各种错误信息,not a module, no module, cannot relative import, _main__…, 等等,各种解决方案,
from .a import b
from . import b
from a import b
from c.d.a import b
import a.b as B
_init_.py,空文件
_init.py_, 列举子模块
sys.append(……………….)
等等等等都不好使的时候,要记住,一个python项目只能有一个主文件,这个主文件不是模块,她是_main_, 不是模块!所以什么办法都不好使。relative import只能在模块间使用。main不是模块,甚至absolute import也不好使,init.py也不好使,有没有也无所谓。关键的是,主文件不是模块,是脚本, dunder main大于一切(双下划线打不出来)。
最简单的解决方案,把主文件放在顶层,其他模块放在子目录。比如
dir1
—-app.py
—-dir2—-class1.py
|——func2.py
|——_init_.py