Python 嵌套导入 'ModuleNotFound' 错误

Python nested import 'ModuleNotFound' error

我有以下文件夹结构:

以及以下代码:

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中有一个pytest测试,和test_low_level.py导入高级和低级脚本的pytest脚本.

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

Nested Python module imports

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

这个问题看起来也很相似 - 它建议使用 libname,但我不完全确定这如何解决问题。

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

import .config

或改用绝对导入

from low_level import config