举一个简单的例子进行说明。
1.基本文件结构
首先建立如下的文件结构, test2020 文件夹下包含有test2020.py(或其他任意你的自建py文件)。将test2020文件夹的上一级目录添加到系统环境变量path中,方法是:
import sys
sys.path.append('c:\\path')# c:\\path 为目标路径
sys.path # 查看路径列表,检查上述路径是否添加成功

2.python包的建立
在 test2020文件夹下建立"__init__.py" 文件,里面可以为空,用于说明这个文件夹是一个python 的package包。为简便起见,test2020.py的内容如下(当然也可以是任何自建的函数等):
# filename:test2020.pyprint("\nfather\n")
此时就可以导入所有test2020文件夹下的py模块了。在terminal或powershell或pycharm等集成开发环境IDE中输入如下代码:
from test2020 import test2020
# 此时,test2020将直接被运行,得到的结果是:father# 当然也可以 import test2020.test2020 as test
# 然后使用test进行后续的计算
对于多级目录的情况,需要在子文件夹中也添加"__init__.py"文件,否则子目录中的模块将无法导入。第一张图中建立了test2020_chirld子目录和对应的test2020_chirld.py模块。test2020_chirld.py模块的内容如下:
# filename:test2020_chirld.pyprint("\nchirld\n")
子目录中的模块导入方式如下:
from test2020.test2020_chirld import test2020_chirld
# 此时,test2020_chirld 将直接被运行,得到的结果是:chirld# 当然也可以 import test2020.test2020_chirld.test2020_chirld as test
# 然后使用test进行后续的计算
3.编写__init__文件,降低导入函数复杂性
上述导入方法都是按照 from包名.模块名 import 函数名的形式,实际情况下,模块名和函数名大多是相同的,在导入函数时模块名显得非常累赘。用好init初始化文件,能有效降低导入时的复杂度。具体方法如下:
在init 文件中以 from包名.模块名 import 函数名 的形式导入包下的所有函数
以后每次导入包的时候,就会自动导入相关的函数,后续只需要直接 from 包名 import 函数名。