我具有以下文件夹结构:
以及以下代码:
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。我看到另一个问题在这里问类似的问题,但是除了阅读所有本文档外,似乎没有具体的建议。
https://docs.python.org/3/reference/import.html
这个问题似乎也很相似-建议使用libname,但是我不确定如何解决该问题。
答案 0 :(得分:1)
要使用相对导入,您应该在模块名称前加一个点。
import .config
或使用绝对导入代替
from low_level import config