python的模块和包
模块:.py结尾的 分为系统模块( logging,json,time) 和自定义模块
其中自定义模块用来定义一些类或方法或变量等
例如定义一个My.py的文件如下
#定义类
class MyException():
pass
# 定义函数
def func():
print('我是一个模块中的func函数')
# 定义变量
love = 'iloveyou'
使用它时只需要import My后就可以 obj = My.MyException() My.func() print(My.love).....
- 模块中的测试代码
- 自定义模块中,通常只是去定义类或函数,变量,等,并不调用
- 如果在自定义模块中,想要写一些测试代码,在当前模块作为主程序使用时执行,
- 而作为模块被别的程序导入时不执行,那么可以把测试代码写到 下面代码块中
if __name__ == '__main__':
print('这个位置写的代码只有当前脚本被直接运行时触发')
# 特殊的变量 __name__
# __name__ 这个变量,在当前脚本作为模块被别的程序导入是 __name__的值 是当前这个模块的名称
#在当前脚本被作为主程序直接由python解析运行时,__name__的值 是 '__main__'
name = __name__
print(name)
包:可以理解为是一个文件夹,里面包含了多个python文件。
- 结构
package/ # 包(文件夹)
├── init.py # 包中的初始化文件
├── a.py # 包中的模块
├── b.py
└── ps/ # 子包
├── init.py
├── c.py
└── d.py
- 导入方式总结:
绝对导入
import 模块
import 包
import 包.模块
from 模块 import 内容
from 包 import 模块
from 包.模块 import 内容
相对导入
from .包名/模块名 import 模块/内容
from ..包名/模块名 import 模块/内容
. 代表当前层
..代表上一级
搜索路径
主要的搜索路径
- 当前导入模块的程序所在的文件
- python的扩展目录中 C:/Users/username/AppData/local/.../Python37/lib
- python解释器指定的其它 第三方模块位置 /lib/sitepackages
在当前脚本中查看 包或模块 的 搜索路径
import sys
print(sys.path)
sys.path.append('/Users/yc/Desktop') 可以自己定义一个路径,加入到搜索路径中
单入口程序是指整个程序都是经过一个主程序文件在运行,其它程序都封装成了包或模块
第三方库和虚拟环境管理
主要掌握pip工具的用法
pip install 包名(库名) 安 装
pip install 包名==版本 安装指定版本
pip list 看已经安装的包
更换镜像会使速度更快
掌握虚拟环境的创建 激活 安装包的过程 可pip install virtualenv后进行创建