如何导入一个子目录中的模块,而该模块又导入了同一子目录中的另一个模块? [英] How to import a module in a subdirectory that imports another module in that same subdirectory?

查看:15
本文介绍了如何导入一个子目录中的模块,而该模块又导入了同一子目录中的另一个模块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我的文件如下所示...

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扩展名)

这篇关于如何导入一个子目录中的模块,而该模块又导入了同一子目录中的另一个模块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆