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

2023-12-27

问题

当我尝试使用以下命令在 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 https://www.python.org/dev/peps/pep-0008/:

绝对不应使用隐式相对导入,并且已在 Python 3 中将其删除。

In util_one.py模块,将其更改为:

from folder_beta import util_two
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在同一目录中导入模块时出现 ModuleNotFound? 的相关文章

随机推荐