Проанализировав ответы этих авторов выше - Zorglub29, Том, Марк, Аарон Макмиллин, lucasamaral, JoeyZhao, Кьелд Фларуп, Procyclinsur, martin.zaenker, tooty44 и отладили проблему, в которой я участвовал Столкнувшись, я обнаружил другой вариант использования, из-за которого столкнулся с этой проблемой.
Следовательно, добавив мои наблюдения ниже для чьей-либо ссылки.
В моем коде у меня был циклический импорт классов. Например:
src
|-- utilities.py (has Utilities class that uses Event class)
|-- consume_utilities.py (has Event class that uses Utilities class)
|-- tests
|-- test_consume_utilities.py (executes test cases that involves Event class)
Я получил следующую ошибку при попытке выполнить python -m pytest tests / test_utilities.py для выполнения UT, написанных в test_utilities.py.
ImportError while importing test module '/Users/.../src/tests/test_utilities.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_utilities.py:1: in <module>
from utilities import Utilities
...
...
E ImportError: cannot import name 'Utilities'
Способ устранения ошибки состоял в том, чтобы переформулировать мой код, чтобы переместить функциональность в класс циклического импорта, чтобы я мог удалить циклический импорт классов.
Обратите внимание, у меня есть файл __init__.py
в моей папке ' src ', а также папка ' tests ', и мне все еще не удалось избавиться от ошибки ' ImportError 'просто перефакторинг кода.
Следующая ссылка на stackoverflow предоставляет гораздо более подробную информацию о Круговая зависимость в Python .