У меня следующая структура папок:
- 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 импортируется из собственного каталога, а каталог выше?
Причина, по которой я заинтересован в этом, заключается в том, что я хочу иметь pytest-тесты в сценариях test_high_level.py и test_low_level.py pytest, которые импортируют сценарии высокого и низкого уровня.
Я использую Python 3.7.Я вижу еще один вопрос, задающий что-то подобное здесь, но, похоже, нет конкретного предложения, кроме как читать всю эту документацию.
Импорт вложенных модулей Python
https://docs.python.org/3/reference/import.html
Этот вопрос также кажется похожим - он рекомендует использовать libname, но я не совсем уверен, какэто решает проблему.
Python: Ошибка ModuleNotFound