Après avoir parcouru les réponses données par ces contributeurs ci-dessus - Zorglub29, Tom, Mark, Aaron McMillin, lucasamaral, JoeyZhao, Kjeld Flarup, Procyclinsur, martin.zaenker, tooty44 et déboguer le problème auquel j'étais confronté, j'ai découvert un cas d'utilisation différent en raison auquel je faisais face à ce problème. D'où l'ajout de mes observations ci-dessous pour la référence de quiconque.
Dans mon code, j'avais une importation cyclique de classes. Par exemple:
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)
J'ai eu l'erreur suivante lorsque j'ai essayé d'exécuter python -m pytest tests / test_utilities.py pour exécuter des UT écrits dans 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'
La façon dont j'ai résolu l'erreur était de re-factoriser mon code pour déplacer la fonctionnalité dans la classe d'importation cyclique afin que je puisse supprimer l'importation cyclique de classes.
Remarque, j'ai un __init__.pyfichier dans mon dossier ' src ' ainsi que dans mon dossier ' tests ' et j'ai toujours pu me débarrasser de ' ImportError » simplement en re-factorisant le code.
Le lien stackoverflow suivant fournit beaucoup plus de détails sur la dépendance circulaire en Python .