python引入模块报错
ValueError: attempted relative import beyond top-level package
ModuleNotFoundError: No module named '__main__.xxx'; '__main__' is not a package
1,首先要明确导包目录, 对象路径是什么
2,一些默认的规则
3,相对路径的本质
1.1 导包目录是python解释器寻找包的目录, 这个目录下面保存的是python包
1.2 对象路径是 a.b.c 这样的类似于文件路径的东西, a可以是包, b可以是包或者模块, c可以是模块或者对象(变量,方法,类等)
2.1 作为启动脚本的文件, 作为入口, 模块名总是: '__main__', 也就是对象路径
2.2 启动脚本所在的目录, 会被添加到python解释器的导包目录中
3.1 相对路径, 就是在当前模块路径上做了回溯
举个🌰 : 启动脚本找到c对象的对象路径是 a.b.c, 那么c对象所在的模块路径就是 a.b, 那么b这个模块内写 from .bb import cc 的意思是 包路径回溯一级, 然后再找bb这个模块, 也就是 a.bb这个模块.
待续~~~