У меня есть проект со следующим макетом:
/src
/mypckg
__init__.py
calibration.py
_const.py
/tests
test_calibration.py
conftest.py
в моем тестовом файле я импортирую мой calibration
модуль:
from mypkg import calibration
в то же время мой calibration
модуль импортирует мои _const
модули, которые содержат все мои константы:
import _const
Файл
my __init__.py
содержит следующие операции импорта:
## __init__ file
from . import calibration
from . import _const
Теперь, когда я запускаю pytest
из тестовой папки, он находит мой calibration
модуль, но выдает мне эту ошибку
...\mypckg\calibration.py:7: in <module>
import _const
E ModuleNotFoundError: No module named '_const'
мой calibration
модуль, очевидно, не может найти модуль _const
, но если я запускаю python calibration.py
из моего каталога пакетов, он работает отлично. проблема в том, что я пытаюсь запустить функцию из модуля calibration
внутри моего тестового файла.
если я импортирую модуль _const
в мой модуль calibration
следующим образом, мой тест будет работать отлично:
from mypckg import _const
# or from . import _const
но если я импортирую его таким образом, когда я запускаю python calibration.py
, это выдает мне эту ошибку:
Traceback (most recent call last):
File "calibration.py", line 8, in <module>
from . import _const
ImportError: cannot import name '_const'
Я попытался погуглить мою проблему, но не нашел ничего подобного, где субмодули не могут быть загружены из тестового файла. Любая идея, почему это поведение и как это можно исправить?