我需要了解普通目录和Python包之间的区别。我知道文档中存在这句话:
需要
文件才能使 Python 将包含该文件的目录视为包。__init__.py
为了解释我的疑问,我将展示一个目录结构的示例:
study_import
|-folder1
| |-b.py
|-a.py
文件内容
study_import/a.py
是:
import folder1.b
print(folder1.b.VAR2)
文件内容
study_import/folder1/b.py
是:
VAR2="20"
脚本
a.py
可以正确执行并打印20
。
使用之前的文件夹结构
study_import
和 folder1
不是软件包,因为它们不包含文件 __init__.py
。
此时我不明白需要有一个包,因为例如指令
import folder1.b
可以执行,即使 __init__.py
不存在。
到目前为止,我认为正确导入模块需要包。
有人可以帮我理解从文件夹导入模块和从包导入模块有什么区别吗?