当前位置: 首页 > 知识库问答 >
问题:

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

司寇星海
2023-03-14

我在Python 3.3项目中有一个名为/models的目录。

从我的main。py我只是做了一个

from models import *

在我的\uuuu初始化中。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

这在我的应用程序中非常有效。

我有一个依赖于另一个模型的模型,例如在我的引擎中。py我需要导入查找。发动机中的py。py。当我这样做时:从查找导入查找

我得到错误没有这样的模块存在

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

共有2个答案

闻人宝
2023-03-14

显然,我可以做:from。查找导入查找,这是有效的。

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

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

邓卓
2023-03-14

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

使用以下任一选项:

from models import finding

import models.finding

或者,也许最好是:

from . import finding  # The . means "from the same directory as this module"
 类似资料:
  • 问题内容: 我有一个存储所有.py文件的目录。 我想从使用类user.py和dir.py在main.py。 如何将这些Python类导入main.py? 此外,如果user.py在子目录中,如何导入类? 问题答案: Python 2 在与文件相同的目录中创建一个名为的空文件。这将向Python表示“可以从此目录导入”。 然后做… 如果文件位于子目录中,则也应如此-将子目录也放入子目录中,然后使用带

  • 问题内容: 我有这种文件结构(目录和箭头文件之后): 主要: 型号目录: 报告目录: 现在,我想导入,但是我尝试做的错误是没有这样的模块。 我尝试了这个: 然后: 看起来这两个文件夹没有看到对方。从其他目录导入文件的方式是什么?我需要在 init .py文件中指定一些其他导入吗? 问题答案: 您可以在运行时添加到系统路径: 到目前为止,这是最简单的方法。

  • 调试和运行时,我在 pycharm 中遇到输入错误。 我的项目结构根是正确的,< code >等等。/HW3/。以便< code>HW3是根目录。 我在HW3中有一个子文件夹,还有一个文件。我在中有另一个名为的文件。 在中,我有以下导入结构, 这会产生一个输入错误, 但是,在完全相同的项目中,在另一个名为 data 的目录(与 util 相同级别)中,我有一个文件 /,它也使用类似的导入语句从 u

  • 问题内容: 这是我正在使用的结构: 我想要做的就是在script.py中定义的类进口和。如果我做: 对于中定义的类,它工作正常。但是使用此解决方案时,如果在不同文件中定义了许多类,并且我想导入所有这些类,则必须为每个文件键入一行。必须有一个捷径。我试过了: 但这没有解决。 编辑 :这是文件的内容: 这是(按照Apalala的建议使用): 这是: 这是: 这是: 这是我尝试运行时得到的跟踪: 问题答

  • 问题内容: 我有一个名为“ ClassA”的Python类,另一个应该导入“ A ClassB”的ClassA的Python类。目录结构如下: 我将如何使用,以便ClassB可以使用ClassA? 问题答案: 您确实应该使用软件包。然后将MainDir放置在文件系统中sys.path上的某个点(例如… / site- packages)上,然后可以在ClassB中说: 您只需要在每个目录中放置命名

  • 我试图从另一个目录导入一个python类,但它总是显示“未找到模块”。 我试图将一个类从导入到中,使用以下内容: 但是它显示了'modulenotfounderror:没有名为'supervision'的模块,在python 3.9中实现这一点的最佳方法是什么?