Python 嵌套导入 'ModuleNotFound' 错误
Python nested import 'ModuleNotFound' error
我有以下文件夹结构:
- high_level.py(顶级)
- low_level(目录)
- low_level_script.py(在'low_level'内)
- config.py(在'low_level'内)
以及以下代码:
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
我有以下文件夹结构:
- high_level.py(顶级)
- low_level(目录)
- low_level_script.py(在'low_level'内)
- config.py(在'low_level'内)
以及以下代码:
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