第四课、自定义包的实现
一、课程介绍
课程概要
- 什么是虚拟环境
- 虚拟环境 virtualenv
- 虚拟环境 pipenv
- 实战——模块与包
课程目标
- 掌握虚拟环境的安装与使用
- 掌握python不同版本的虚拟环境的安装和使用
- 动手实现封装自己的模块和包
学习建议
- 多动手
- 多思考
- 多实践
二、实操:实现自定义包
2-1 实战自定义包(1)
实战——实现自己的工具包
- 包含trans和work两个包
- 两个包都有同样的tools模块
- 包含constants常量模块
- 模块中会引用常量模块提供的常量值
- 在测试模块中可以分别调用tools相关方法
1 from datetime import datetime 2 import random 3 4 5 def gen_trans_id(date=None): 6 """ 7 根据所传入的时间得到一个唯一的交易流水ID 8 :param date: 9 :return: 10 """ 11 # 如果没有传入时间,则使用系统当前的时间 12 if date is None : 13 date = datetime.now() 14 15 # 怎样保证字符串的唯一 16 # 日期+时间+毫秒+随机数(6位随机数) 17 # return '{0}{1}'.format(date.strftime('%y%m%d%H%M%S%f'), random.randint(100000, 999999)) 18 return date.strftime('%y%m%d%H%M%S%f')+str(random.randint(100000, 999999))
1 from datetime import datetime 2 3 from trans.tools import gen_trans_id 4 5 6 def test_trans_tool(): 7 """ 测试trans包下的tool模块""" 8 id1=gen_trans_id() 9 print(id1) 10 date = datetime(2019, 10, 18, 20, 15, 24) 11 id2 = gen_trans_id(date) 12 print(id2) 13 14 if __name__ == '__main__': 15 test_trans_tool()
结果:
2-2 实战自定义包(2)
1 from datetime import datetime 2 3 from trans import tools as trans_tools 4 from work import tools as work_tools 5 6 def test_trans_tool(): 7 """ 测试trans包下的tool模块""" 8 id1 = trans_tools.gen_trans_id() 9 print(id1) 10 date = datetime(2019, 10, 18, 20, 15, 24) 11 id2 = trans_tools.gen_trans_id(date) 12 print(id2) 13 14 def test_work_tool(): 15 """测试work模块""" 16 file_name = 'C:\\Users\\19342\\Desktop\\gzb.XLSX' 17 rest = work_tools.get_file_type(file_name) 18 print(rest) 19 20 if __name__ == '__main__': 21 test_trans_tool() 22 test_work_tool()
1 import os.path 2 import constants 3 4 5 def get_file_type(file_name): 6 """ 7 根据文件的名称来判断文件的类型 8 :param file_name:str 文件名称 9 :return:int 文件类型 10 -1:未知文件类型 11 0:图片类型的文档 12 1:word文档 13 2:execl文档 14 3:ppt文档 15 """ 16 # 默认文件是未知类型的 17 result = constants.FILE_TYPE_UNKNOWN 18 # 传进来的必须是一个文件的名称 19 if not os.path.isfile(file_name): 20 return result 21 path_name, ext = os.path.splitext(file_name) 22 # 将文件的后缀名统一写成小写 23 ext = ext.lower() 24 # 图片类型的文件 25 if ext in('.png', '.jgp', '.gif', '.bmp'): 26 result = constants.FILE_TYPE_IMG 27 # word文件 28 elif ext in ('.doc', '.docx'): 29 result = constants.FILE_TYPE_DOC 30 # execl文件 31 elif ext in ('.xls', '.xlsx'): 32 result = constants.FILE_TYPE_EXCEL 33 # ppt文件 34 elif ext in ('.ppt', '.pptx'): 35 result = constants.FILE_TYPE_PPT 36 return result
结果:
三、虚拟环境的安装及使用
3-1虚拟环境概述
什么是虚拟环境
- 建立在宿主环境上的独立容器
- 具备和宿主环境相同的功能
- 快速创建和删除、方便管理
虚拟环境的好处
- 独立——相互隔离,互不影响
- 纯净——只有我一个项目用的包和依赖,好管理
- 方便——摒弃频繁安装/卸载包和依赖
3-2 python虚拟环境之virtualenv
第三方模块——安装
- pip install django
- python setup.py install
虚拟环境-virtualenv
- pip install virtualenv
- 进入/退出虚拟环境:activate/deactivate
- pip install virtualenvwrapper-win
- 虚拟环境自由切换:workon vname
操作步骤:http://file.mukewang.com/class/assist/921/7986386/8srsb2nv7k2/%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83.pdf
3-3 python虚拟环境之pipenv
虚拟环境-pipenv
- pip install pipenv
- 创建及使用虚拟环境
- mkdir py2.7
- cd py2.7
- pipenv --python2.7
- pipenv install reqeusts
- pipenv shell
- exit
四、课程总结
4-1 课程总结
课程总结
- 什么是虚拟环境
- 虚拟环境virtualenv
- 虚拟环境 pipenv
- 实战-模块与包
知识点回顾
虚拟环境-virtualenv
- pip install virtualenv
- 进入/退出虚拟环境:activate/deactivate
- pip install virtualenvwrapper-win
- 虚拟环境自由切换:workon vname
虚拟环境-pipenv
- pip install pipenv
- 创建及使用虚拟环境
- mkdir py2.7
- cd py2.7
- pipenv --python2.7
- pipenv install reqeusts
- pipenv shell
- exit
实战--实现自己的工具包
- 包含trans和work的两个包
- 两个包都有同样的tools模块
- 包含constants常量模块
- 模块中会引用常量模块提供的常量值
- 在测试模块中可以分别调用tools相关方法
重点知识
- 什么是虚拟环境
- 在什么场景下需要虚拟环境
- 如何安装和切换
- 模块与包的实战
难点知识
- 对虚拟环境的理解和使用
- 动手实践包与模块