从文件夹导入模块和从包导入模块有什么区别?

问题描述 投票:0回答:0

我需要了解普通目录和Python包之间的区别。我知道文档中存在这句话:

需要

__init__.py
文件才能使 Python 将包含该文件的目录视为包。

为了解释我的疑问,我将展示一个目录结构的示例:

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
不存在。 到目前为止,我认为正确导入模块需要包。

有人可以帮我理解从文件夹导入模块和从包导入模块有什么区别吗?

python python-module python-packaging
© www.soinside.com 2019 - 2024. All rights reserved.