相对导包的问题: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下不能进行相对路径式导入模块,必须使用绝对路径导入。

相关文章:

  • 2022-02-09
  • 2022-12-23
  • 2021-08-09
  • 2021-09-26
  • 2021-12-21
  • 2021-12-24
  • 2021-12-11
猜你喜欢
  • 2022-12-23
  • 2021-11-29
  • 2021-04-28
  • 2021-09-24
  • 2021-10-20
  • 2023-03-18
相关资源
相似解决方案