如何导入一个子目录中的模块,而该模块又导入了同一子目录中的另一个模块?

2022-03-31 00:00:00 python python-import

问题描述

在我导入的模块中,我正在尝试导入位于同一目录中的另一个模块。

我的文件如下所示...

project
├── main.py
└── app
    └── foo.py
    └── bar.py

main.py

import app.foo as Foo

foo.py

import bar

所以现在,当我运行main.py时,我得到一个

ModuleNotFoundError: No module named 'bar'
有这么多类似的问题,但似乎没有一个是我的确切情况。

如何才能使此功能正常工作?


解决方案

从..导入或者。应起作用:

from . import bar 
记得在app目录中添加__init__.py(空文件)。

编辑:只有使用foo和bar作为模块时才能进行编辑。例如,您将无法运行"python foo.py"或"python foo.bar"。在app目录之外,您可以尝试使用以下代码:

python -m app.foo

(注意缺少.py扩展名)

相关文章