Depois de analisar as respostas dadas por esses contribuidores acima - Zorglub29, Tom, Mark, Aaron McMillin, lucasamaral, JoeyZhao, Kjeld Flarup, Procyclinsur, martin.zaenker, tooty44 e depurando o problema que estava enfrentando, descobri um caso de uso diferente devido para o qual eu estava enfrentando esse problema. Portanto, adiciono minhas observações abaixo para referência de qualquer pessoa.
No meu código, tive uma importação cíclica de classes. Por exemplo:
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)
Recebi o seguinte erro quando tentei executar python -m pytest tests / test_utilities.py para executar UTs escritos em 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'
A maneira como resolvi o erro foi refatorando meu código para mover a funcionalidade na classe de importação cíclica para que eu pudesse remover a importação cíclica de classes.
Observe, eu tenho o __init__.pyarquivo na minha pasta ' src ', bem como na pasta ' testes ' e ainda fui capaz de me livrar do ' ImportError ' apenas reformulando o código.
O seguinte link stackoverflow fornece muito mais detalhes sobre a dependência circular em Python .