Мой код выполняется правильно с использованием python3, но при использовании cover3 возвращается ImportError при импорте созданного мной пакета.
Мой проект выглядит следующим образом:
components/common/ConfigTest/ConfigTest.py
-> файл, который я хочуexecute - тест для класса Config, объявленного в файле Config.py
components/common/Config.py
->, включенного в ConfigTest.py
Переменная среды PYTHONPATH указывает на местоположение каталога components
поэтому я могу использовать его как базовый каталог для своих импортов.
Файл ConfigTest.py начинается следующим образом:
import os
import unittest
from common.Config import Config
При расположении в каталоге ConfigTest при выполнении следующей команды выдается ожидаемаявывод:
python3 -m unittest ConfigTest.py
Однако при выполнении coverage3 run ConfigTest.py
или coverage3 run -m unittest ConfigTest.py
выдается следующая ошибка:
Traceback (most recent call last):
File "ConfigTest.py", line 7, in <module>
from common.Config import Config
ImportError: No module named 'common.Config'
В прошлом у меня возникали похожие проблемы при выполнении кода на разных машинах/ разные версии Python, и эти проблемы были вызваны из-за неправильной настройки среды PYTHONPATH var.В этом случае я напечатал print(os.environ['PYTHONPATH'])
перед выполнением проблемного импорта, и он печатает правильное значение такой переменной при использовании python3 и cover3.
Любая подсказка, в чем может быть проблема?Спасибо.