如何导入一个子目录中的模块,而该模块又导入了同一子目录中的另一个模块?
问题描述
在我导入的模块中,我正在尝试导入位于同一目录中的另一个模块。
我的文件如下所示...
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扩展名)
相关文章