Comment importer des fichiers de classe python à partir du même répertoire?
j'ai un répertoire dans mon projet Python 3.3 appelé /models.
à partir de mon main.py
je n'ai tout 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 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
engine.py
. Quand je fais: from finding import Finding
j'ai l'erreur No Such Module exists
.
Comment puis-je importer la Classe B à partir du fichier A dans le même fichier? module / répertoire?
Edit 1:
Apparemment je peux faire: from .finding import Finding
et ça marche. Et la réponse ci-dessous reflète également cela, donc je suppose que c'est raisonnablement correct. J'ai corrigé le nom de mon fichier et j'ai déplacé mes tests dans un autre répertoire. Merci!
1 réponses
puisque vous utilisez Python 3, qui rejette ces importations relatives (cela peut conduire à une confusion entre des modules du même nom dans des paquets différents).
utiliser l'un ou l'autre:
from models import finding
ou
import models.finding
ou, mieux sans doute:
from . import finding # The . means "from the same directory as this module"