为什么在同一目录中导入模块时出现 ModuleNotFound?

Why ModuleNotFound when importing a module in a same directory?

问题

当我尝试使用如下命令在 linux bash 上激活 main.py 时,

python3 main.py

一直出现如下错误信息,我也不知道为什么!!

File "main.py", line 1, in <module>
    import folder_beta.util_one
File "folder_beta/util_one.py", line 1, in <module>
    ModuleNotFoundError: No module named 'util_two'

问题更详细

文件夹树如下所示:

folder_alpha
├── main.py
└── folder_beta
      ├── __init__.py (empty)
      ├── util_one.py
      └── util_two.py

main.py

import folder_beta.util_one
import folder_beta.util_two
....

util_one.py

import util_two
...

当我单独执行 'util_one.py' 时,它工作得很好,但是当我执行 main.py 时,错误不断出现。

谁能告诉我如何解决这个问题?

这是一个 隐式相对导入 ,它在 Python 2 中可以工作,但在 Python 3 中不再允许。来自 PEP 8:

Implicit relative imports should never be used and have been removed in Python 3.

util_one.py模块中,将其改为:

from folder_beta import util_two