如何从同一目录导入python类文件?

2024-06-12 07:19:40 发布

您现在位置: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中,我需要导入finding.py中的engine.py。当我这样做时:from finding import Finding

我得到错误No Such Module exists

如何从同一个模块/目录中的文件A导入B类?

编辑1: 显然我能做到:from .finding import Finding而且这是有效的。下面的答案也反映了这一点,所以我想这是合理正确的。我已经修复了我的文件命名,并将我的测试移到了另一个目录,我现在运行顺利。谢谢!


Tags: 文件frompy模型import目录modelsrule
1条回答
网友
1楼 · 发布于 2024-06-12 07:19:40

因为您使用的是Python 3,它不允许这些相对导入(这可能会导致不同包中同名模块之间的混淆)。

使用以下任一选项:

from models import finding

或者

import models.finding

或者,也许最好:

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

相关问题 更多 >