首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何导入同一目录下的python类文件?

如何导入同一目录下的python类文件?
EN

Stack Overflow用户
提问于 2014-01-15 21:56:57
回答 2查看 60.9K关注 0票数 45

我的Python3.3项目中有一个名为/models的目录。

在我的main.py中,我简单地做了一个

代码语言:javascript
复制
from models import *

在我的__init__.py

代码语言:javascript
复制
__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中,我需要在engine.py中导入finding.py。当我这样做的时候:from finding import Finding

我得到了错误No Such Module exists

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-15 22:01:32

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

使用以下任一选项:

代码语言:javascript
复制
from models import finding

代码语言:javascript
复制
import models.finding

或者,也许是最好的:

代码语言:javascript
复制
from . import finding  # The . means "from the same directory as this module"
票数 59
EN

Stack Overflow用户

发布于 2020-12-17 05:18:05

显然我可以做到:from .finding import Finding,这是可行的。

下面的答案也反映了这一点,所以我猜这是相当正确的。

我已经修复了我的文件命名,并将我的测试移到了一个不同的目录中,我现在运行得很顺利。谢谢!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21139364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档