Подтвердить что ты не робот

Как импортировать файл класса 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, и это работает. И ответ ниже отражает это, так что, я думаю, это разумно правильно. Я исправил свое имя файла и перевел мои тесты в другой каталог, и теперь я работаю плавно. Спасибо!

4b9b3361

Ответ 1

Так как вы используете Python 3, который запрещает относительный импорт (это может привести к путанице между модулями одного и того же имени в разных пакетах).

Используйте либо:

from models import finding

или

import models.finding

или, возможно, лучше всего:

from . import finding  # The . means "from the same directory as this module"