Подмодуль не может быть импортирован при использовании pytest - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть проект со следующим макетом:

/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'

Я попытался погуглить мою проблему, но не нашел ничего подобного, где субмодули не могут быть загружены из тестового файла. Любая идея, почему это поведение и как это можно исправить?

...