J'essaye de refactoriser du code python et je suis coincé avec une erreur d'importation que je ne comprends pas. Je soupçonne qu'il pourrait y avoir une dépendance circulaire quelque part mais je ne la vois pas, et je ne reçois pas beaucoup d'indices à partir des messages d'erreur. Le code de base est grande, mais il y a deux modules d'intérêt ici:Bizarre incompatible python ImportError - dépendance circulaire possible?
radian/models.py
définit une classe appelée ACount
datalayer/radian.py
a la ligne suivante dans le:
from radian.models import ACount
Quand je lance le code (soit interactivement ou à partir du programme principal) les importations échouent d'une manière qui n'a pas de sens pour moi.
>>> from radian.models import ACount
>>> import datalayer.radian
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Users/leopd/dev/dbproj/datalayer/radian.py", line 10, in <module>
from radian.models import ACount
ImportError: No module named models
Ma meilleure estimation est qu'il ya une dépendance circulaire quelque part - que radian
est l'importation quelque chose qui importe datalayer
. Mais je ne le vois pas. Et le message d'erreur n'a aucun sens pour moi. Avez-vous une idée de ce qui passe?
- MISE À JOUR -
J'utilise python 2.6.1 sur Mac. Les fichiers __init__.py
contiennent du code, mais ils ne sont importés qu'à partir de paquets python standard.
Quelle version de Python utilisez-vous? Je recommande d'autoriser les importations absolues si elles sont disponibles. –
Est-ce que 'radian' a un fichier' __init __. Py'? –
Le fichier 'radian.py' pourrait-il essayer d'importer' models' de lui-même? – JAB