Comment faire pour importer python fichier de classe de même répertoire?
J'ai un répertoire dans mon Python 3.3 projet appelé /modèles.
de mon main.py
je fais simplement un
from models import *
dans mon __init__.py
:
__all__ = ["Engine","EngineModule","Finding","Mapping","Rule","RuleSet"]
from models.engine import Engine,EngineModule
from models.finding import Finding
from models.mapping import Mapping
from models.rule import Rule
from models.ruleset import RuleSet
Cela fonctionne très bien à partir de mon application.
J'ai un modèle qui dépend d'un autre modèle, de telle sorte que dans mon engine.py
j'ai besoin d'importer finding.py
dans engine.py
. Quand je fais: from finding import Finding
Je reçois le message d'erreur No Such Module exists
.
Comment puis-je importer la classe B à partir d'Un fichier dans le même module/répertoire?
Edit 1:
Apparemment je peux le faire: from .finding import Finding
et cela fonctionne. Et la réponse ci-dessous, ce que reflète ainsi donc, je suppose que cela est raisonnablement correcte. J'ai résolu mon nom de fichier et déplacé mes tests dans un répertoire différent, et je suis en cours d'exécution en douceur maintenant. Merci!
- Quelle est la version de python que vous utilisez?
- Je suis à l'aide de Python 3.3
- Python 3 n'autorise pas implicite relative des importations.
- Pouvez-vous déplacer votre Édition 1 de la section et après que l'auto-réponse (
from .finding import Finding
)?
Vous devez vous connecter pour publier un commentaire.
Puisque vous êtes à l'aide de Python 3, qui interdit toute relative de ces importations (il peut y avoir confusion entre les modules du même nom dans différents packages).
Utiliser soit:
ou
ou, probablement le meilleur:
from . import finding
(sinon, SyntaxError est accru, au moins pour moi sur python 3.5).