Как импортировать файл класса python из того же каталога?
У меня есть каталог в моем проекте Python 3.3 под названием /models.
из моего main.py Я просто делаю
from models import *
в моем __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
Это отлично работает с моим приложением.
У меня есть модель, которая зависит от другой модели, такой, что в моем engine.py мне нужно импортировать find.py
в engine.py, когда я это сделаю: from finding import Finding
Я получаю сообщение об ошибке No Such Module exists
Как импортировать класс B из файла A в тот же модуль/каталог?
Изменить 1:
Видимо, я могу сделать: from .finding import Finding
, и это работает. И ответ ниже отражает это, так что, я думаю, это разумно правильно. Я исправил свое имя файла и перевел мои тесты в другой каталог, и теперь я работаю плавно. Спасибо!
Ответы
Ответ 1
Так как вы используете Python 3, который запрещает относительный импорт (это может привести к путанице между модулями одного и того же имени в разных пакетах).
Используйте либо:
from models import finding
или
import models.finding
или, возможно, лучше всего:
from . import finding # The . means "from the same directory as this module"