相对导包的问题:ModuleNotFoundError: No module named ‘main.file01’; ‘main’ is not a package
今天想说一个关于相对导包的问题,直接上一段代码来反映这个问题比较清楚一些:
首先建立一个demo01的pythonpackage(包)。
# 建立一个file01.py的文件,代码如下
def test1():
print("test1")
# 建立一个file02.py的文件,代码如下
from .file01 import test1
test1()
执行file02.py时会发生如下的报错:
那么为什么会产生这个问题呢?
根本原因在于两个文件处于同一个包下,而通过相对路径导包时会形成循环导包,解决这个问题的方法就是通过绝对路径导包,即
from demo01.file01 import test1
test1()
这样就可以正常的执行代码了。
总结为一句话,在同一个pythonpackage下不能进行相对路径式导入模块,必须使用绝对路径导入。