Python嵌套导入'ModuleNotFound'错误

时间:2019-06-02 18:55:41

标签: python python-3.x nested python-import

我具有以下文件夹结构:

  • high_level.py(顶级)
  • 低级别(目录)
    • low_level_script.py(在“ low_level”内)
    • config.py(在“低级”内)

以及以下代码:

high_level.py

from low_level import low_level_script

low_level_script.test_fun()

low_level_script.py

import config
def test_fun():
    return config.A

config.py

A = 1

如果执行以下操作,则在顶层出现导入错误。

import high_level

ModuleNotFoundError: No module named 'config'

这是为什么?使script.py能够导入config.py的最佳方法是什么,该方法可以使script.py从其自己的目录以及上面的目录导入?

我对此感兴趣的原因是,我想在test_high_level.py和testtest.low_level.py pytest脚本中进行pytest测试,以导入高级和低级脚本。

我正在使用Python 3.7。我看到另一个问题在这里问类似的问题,但是除了阅读所有本文档外,似乎没有具体的建议。

Nested Python module imports

https://docs.python.org/3/reference/import.html

这个问题似乎也很相似-建议使用libname,但是我不确定如何解决该问题。

Python: ModuleNotFound Error

1 个答案:

答案 0 :(得分:1)

要使用相对导入,您应该在模块名称前加一个点。

import .config

或使用绝对导入代替

from low_level import config