父目录中模块的相对导入

Relative import of module in parent directory

我希望能够从位于子文件夹中的测试脚本测试 python class。我的项目结构如下:

importTest
    __init__.py
    testFolder
        testScript.py
    tobeimported.py

tobeimported.py的内容是:

class ToBeImported:
    def __init__(self):
        self.print('Created!')

我的testScript.py的内容是:

from ...importTest import tobeimported

def runTest():
    item = tobeimported.ToBeImported()

if __name__ == '__main__':
    runTest()

当我 运行 testScript.py 时,我得到错误:

attempted relative import with no known parent package

但是 importTest 应该被称为一个包吧?因为它有 __init__.py 文件?

我还能如何在我的测试脚本中导入我的 ToBeImported class?

我运行宁python3.9.5

这里有两个问题

  • testFolder 中没有 __init__.py 文件,因此就 python 而言,这不是 python 包
  • testScript.py 运行 直接来自其文件夹。这使得 python 认为顶级包是 testFolder 所以“没有已知的父包”

您应该添加初始化文件,然后 运行 来自 importTest 父文件夹的代码 python -m importTest.testFolder.testScript