版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzg_inspur/article/details/84952038
在python中一个.py文件就是一个模块,模块提高了代码的可维护性。
比如有一个app.py模块,
def add(x,y)
print(x+y)
我们可以通过import app来导入app模块,这个过程为将app模块下的所有内容装入解释器进行解释,将解释的结果赋值给app这个对象。这样我们就可以通过app.add(x,y)来进行调用
我们也可以通过from app import add 只导入add函数方法。这样我们可以直接使用add(x,y)来进行调用
模块越来越多,大家写的模块名重复的概率就会比较大,为了合理的管理模块,引入了包
包是用来管理模块的,每个包下都有一个__init__.py的文件。
导入包的两种方式:只有这两种方法
不建议使用这样形式:
from 包名 import * 这种加载的太多,消耗太多的内存空间
from 包名 import 模块名
import 包名 # 执行包下面的__init__.py 这个文件
为了让导入的包名正确,项目能跨平台运行,一般选择项目名这个文件夹作为basedir
os.path.abspath(__file__) # 获取当前文件的相对路径
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 通过这样形式获取项目的路径
sys.path.append(BASE_DIR) # 将项目路径添加到sys.path 从而保证模块以及包能顺利的发现
注意:模块或者包导入的时候,是通过系统路径来进行查找的。也就是sys.path 这个值