I have a directory in my Python 3.3 project called /models.
from my main.py
I simply do a
from models import *
in my __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
This works great from my application.
I have a model that depends on another model, such that in my engine.py
I need to import finding.py
in engine.py
. When I do: from finding import Finding
I get the error No Such Module exists
.
How can I import class B from file A in the same module/directory?
Edit 1:
Apparently I can do: from .finding import Finding
and this works. And the answer below reflects this as well so I guess this is reasonably correct. I've fixed up my file naming and moved my tests to a different directory and I am running smoothly now. Thanks!
Since you are using Python 3, which disallows these relative imports (it can lead to confusion between modules of the same name in different packages).
Use either:
or
or, probably best: