一、模块的导入
1、 import 语句导入
import 语句的基本语法格式如下:
import 模块名 #导入一个模块
import 模块 1,模块 2… #导入多个模块
import 模块名 as 模块别名 #导入模块并使用新名字
2、 from…import 导入
Python 中可以使用 from…import 导入模块中的成员。基本语法格式如下:
from 模块名 import 成员 1,成员 2,…
3、 import 语句和 from...import 语句的区别
import 导入的是模块。from...import 导入的是模块中的一个函数/一个类。
如果进行类比的话,import 导入的是“文件”,我们要使用该“文件”下的内容,必
须前面加“文件名称”。from...import 导入的是文件下的“内容”,我们直接使用这
些“内容”即可,前面再也不需要加“文件名称”了。
4、 __import__()动态导入
import 语句本质上就是调用内置函数__import__(),我们可以通过它实现动态导入。给
__import__()动态传递不同的的参数值,就能导入不同的模块。
s = "math"
m = __import__(s) #导入后生成的模块对象的引用给变量 m
print(m.pi)
二、 包 package 的使用
1、导入包操作和本质
方式如下:
1. import a.aa.module_AA
在使用时,必须加完整名称来引用,比如:a.aa.module_AA.fun_AA()
2. from a.aa import module_AA
在使用时,直接可以使用模块名。 比如:module_AA.fun_AA()
3. from a.aa.module_AA import fun_AA 直接导入函数
在使用时,直接可以使用函数名。 比如:fun_AA()
【注】
1. from package import item 这种语法中,item 可以是包、模块,也可以是函数、
类、变量。
2. import item1.item2 这种语法中,item 必须是包或模块,不能是其他。
3、导入包的本质其实是“导入了包的__init__.py”文件。也就是说,”import pack1”意味
着执行了包 pack1 下面的__init__.py 文件。 这样,可以在__init__.py 中批量导入我们需要
的模块,而不再需要一个个导入。
2、 sys.path 和模块搜索路径
当我们导入某个模块文件时, Python 解释器去哪里找这个文件呢?只有找到这个文
件才能读取、装载运行该模块文件。它一般按照如下路径寻找模块文件(按照顺序寻找,找
到即停不继续往下寻找):
1. 内置模块
2. 当前目录
3. 程序的主目录
4. pythonpath 目录(如果已经设置了 pythonpath 环境变量)
5. 标准链接库目录
6. 第三方库目录(site-packages 目录)
7. .pth 文件的内容(如果存在的话)
8. sys.path.append()临时添加的目录
当任何一个 python 程序启动时,就将上面这些搜索路径(除内置模块以外的路径)进行收集,
放到 sys 模块的 path 属性中(sys.path)。