【发布时间】:2022-10-16 13:16:26
【问题描述】:
因此,我在尝试在子包中导入模块时遇到ModuleNotFoundError,该模块在其目录下导入另一个子包(因此它是主目录的子子包)。我在子目录和子目录下都放了空的__init__.py 文件。代码在 Python 3.9.7 中运行。
这是结构的样子:
|- main.py
|- subpackage/
|- __init__.py
|- submod.py
|- subsubpackage/
|- __init__.py
|_ subsubmod.py
编码
在main.py,我有:
from subpackage import submod
def main():
x = submod.test_func(3)
print(x)
if __name__ == 'main':
main()
在submod.py,我想在subsubpackage/下导入subsubmod.py,所以我有:
from subsubpackage import subsubmod
def test_func(a):
return subsubmod.addone(a)
最后,在subsubmod.py:
def addone(x):
return x+1
错误信息:
现在如果我运行main.py,我得到了
Traceback (most recent call last):
File "/Users/anonymous/test/main.py", line 1, in
<module>
from subpackage import submod
File "/Users/anonymous/test/subpackage/submod.py",
line 1, in <module>
from subsubpackage import subsubmod
ModuleNotFoundError: No module named 'subsubpackage'
我的问题和困惑
我不确定我做错了什么。我意识到submod.py 可以单独运行,所以似乎import 出现多个子目录时会出现问题?我想知道是否有办法解决这个问题,或者我应该使用不同的结构来组织我的脚本。
【问题讨论】:
标签: python python-3.x python-import