父目录中模块的相对导入
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
我希望能够从位于子文件夹中的测试脚本测试 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