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

ImportError:如何从父目录导入函数或类[重复]

岳涵煦
2023-03-14

我试图将一个类从父目录导入到我的脚本中,但是我收到了< code >尝试相对导入,但没有已知的父包错误,我已经在互联网上到处搜索,但仍然无法修复该错误。这是我的包结构:

A/
  a.py
  __init__.py
  B/
    __init__.py
    c.py

现在假设我在a.py模块中有class 1,并且我正在尝试将其导入c.py模块中。我已经尝试过:

from ..A.a import class1

但是我得到上面的错误消息,我已尝试将A文件夹添加到sys.path,但仍然是相同的错误。任何人都可以解释如何将包从函数或类从父目录导入子目录(例如从 a.py 导入到 c.py

共有1个答案

汪甫
2023-03-14

我这样做的方法是通过附加来扩展c.py文件中的路径。下面是一个例子:

a.py(父目录中的示例模块)

class class1:
    def __init__(self):
        print("This worked!")

c.py(在父目录中调用 a.py 的示例文件)

# By importing the sys module, you can change many
# things including the system environment.
import sys
sys.path.append("../")

# Once you've added the parent directory, you can freely
# import as you would have normally.
from a import class1
instance = class1() 

你的..不起作用的原因是,以...开头的导入是从要导入的事物内部导入的(我理解它的方式)。使用示例的一个示例是在 a.py 旁边添加一个 d.py,该 a.py 可以使用 from .d import * 从 a.py 导入。

 类似资料:
  • 问题内容: 我有以下内容: 我正在尝试从父目录导入。在这种情况下,我尝试从测试文件夹中运行“ UnitTest1.py”,并从其上方的目录(文件“ ModuleFile.py”)导入。 我知道已经有很多答案。 SO问题1,SO问题2,其他所有SO问题。我只是找不到“使用../”作为相对导入而不是显式路径。 我知道从Python 2.5开始,根据提到使用的文档,它们支持“相对导入”,但是我专门尝试这

  • 问题内容: 如何导入驻留在父目录中的模块(python文件)? 这两个目录中都有文件,但是我仍然无法从父目录导入文件? 在此文件夹布局中,脚本B尝试导入脚本A: 脚本B中的以下代码不起作用: 问题答案: 您无需在Python中导入脚本,而可以导入模块。一些python模块也是可以直接运行的脚本(它们在模块级别上做了一些有用的工作)。 通常,最好使用绝对进口,而不是相对进口。 在: 如果您想作为脚本

  • 问题内容: 如何从父目录进行相对导入? 来自: 这给出了一个模棱两可的错误: 如何从父目录本地导入? 问题答案: 感谢您添加到您的问题。首先是一个答案,然后是一些解释。我建立了您的代码, 去获得,就像你拥有它一样。(我忽略了错误消息。) 如您所愿,将导入行设置回“ ../../../meme”。 (注释掉一些包含未使用变量的代码。) 然后在梅梅/ CMD /米姆目录,要么或者工作。 刚才我说去安装

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

  • 问题内容: 如何使用C ++从派生类调用父函数?例如,我有一个名为的类,一个名为的类是从父类派生的。每个类中都有一个print函数。在定义孩子的打印功能时,我想调用父母的打印功能。我将如何去做呢? 问题答案: 我冒着明显的危险:调用该函数,如果它在基类中定义,则该函数在派生类中自动可用(除非它是private)。 如果派生类中有一个具有相同签名的函数,则可以通过在基类名称后加上两个冒号来消除歧义。

  • 我在Python 3.3项目中有一个名为/models的目录。 从我的我只是做了一个 在我的: 这在我的应用程序中非常有效。 我有一个依赖于另一个模型的模型,例如在我的我需要导入。py。当我这样做时: 我得到错误。 如何从同一模块/目录中的文件A导入类B?