python 中的导入实际上是如何工作的?

How importing actually works in python?

在我的工作目录中,我有 python3 个这样的文件

/Path/to/cwd/main.py
/Path/to/cwd/Folder/one.py
/Path/to/cwd/Folder/two.py

所以我有一个 main.py 这样的文件

import Folder.one as one
#Do something

在 one.py 我有这样的代码

import two
#Some functions defined locally utilizing functions written in two.py
if __name__ == '__main__':
    #Code for testing Functions

当我运行one.py时,它运行没问题。但是当我运行main.py时,它抛出一个错误

ModuleNotFoundError: No module named 'two'

理想情况下,我根本不会想到会出现这样的错误。

当我将导入语句从 import two 更改为 import Folder.two 时,它起作用了。但我想以其他方式做到这一点,而不会对此类导入语句产生太大影响。如何实现?

为了让 python 解释器知道哪些目录包含要加载的代码,您需要包含一个 __init__.py 文件。

查看 this answer 以了解有关如何导入包的更多信息。

在第二次导入的情况下,要访问该方法,您需要使用此语法。

from .two import *