Переглянувши відповіді цих співробітників вище - Zorglub29, Том, Марк, Аарон Макміллін, lucasamaral, JoeyZhao, Kjeld Flarup, 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 .