虚拟环境-virtualenv
-
pip install virtualenv
-
进入/退出虚拟环境: activate/deactivate
 //建立目录,虚拟出需要的环境,比如django1.11,会把需要的python,setuptools,pip,wheel等工具放到环境中.
//进入Scripts目录
cd scripts
activate //(django1.11) C:\envs\django1.11\scripts
pip install django==1.11 //在虚拟环境中安装django1.11
deactivate.bat //退出虚拟环境
//注意,如果想在虚拟环境中安装包,一定要先activate进入这个环境,出现(虚拟环境名),不是进入目录,不然会安装在真是的python环境中.
-
pip install virtualenvwrapper-win
//安装这个包要在真是的python环境中安装,安装这个就可以在各虚拟环境中自由切换.如下.注意:首先要把创建的虚拟环境保存目录C:/envs 加入到WINDOWS用户环境变量中,变量名:WORKON_HOME 变量值:C:\envs
-
workon vname
workon flask和workon django1.11 自由切换
///////以上虚拟环境的操作都是针对控制台命令行的,如果要在开发工具中使用虚拟环境,需要在工具中设置,比如Pycharm中
//在settings中,查找Interpreter>>project interpreter:选择show all ,下面有虚拟环境配置选项,可以在这里增加或者使用现有的环境,都是可以的. 然后在RUN的时候,就可以在上面选择框中点击edit configurations选择运行的虚拟环境就可以了.
实战-实现自己的工具包
-
包含trans和work两个包
//trans>>tools 实现一个交易ID
from datetime import datetime
import randint
//根据所传入的时间得到一个唯一的交易流水ID
def gen_trans_id(date = None):
//Charm中三个双引号回车,会帮助我们建立注释文档
if date is None:
date = datetime.now()
//怎样保证字符串的唯一,日期+时间+毫秒+随机数(6位)
return date.strftime('%Y%m%d%H%M%S%f') + str(random.randint(100000,999999)) //生成6位随机数
//或者用下面format方式,不用强制转换random
return '{0}{1}'.format(date.strftime('%Y%m%d%H%M%S%f'),random.randint(100000,999999))
-
两个包都有同样的tools模块
import os.path
import constants
//建立一个work工具包目录,建立一个tools.py文件
def get_file_type(file_name):
//根据文件名称判断文件类型,file_name是str,return int,0是图片,1是word文档,2...excel.3...
//默认文件是未知类型
result=constants.FILE_TYPE_UNKNOWN
if not os.path.isfile(file_name): //文件需真是存在,否则返回false
return result
path_name,ext = os.path.splitext(file_name) //得到一个元组
//将文件的后缀名统一成小写
ext = ext.lower()
if ext in('.png','.jgp','.gif','.jpge',,,,):
result = constants.FILE_TYPE_IMG
elif ext in('','','',''):
result = constants.FILE_TYPE_DOC
elif ext in('','','',''):
result = constants.FILE_TYPE_EXL
elif ext in('','','',''):
result = constants.FILE_TYPE_PPT
return result
//注意,如果要把目录当成一个包使用,就要加入_init_.py文件,如果不加,只能当一个目录使用,需要引用到具体的模块
-
包含constants常量模块
// 建立一个常量模块constants,存放静态常量.减少代码修改量
FILE_TYPE_IMG = 10 //常量一般用大写
FILE_TYPE_DOC = 11 //word文档
FILE_TYPE_EXL = 12 //EXCEL文档
FILE_TYPE_PPT = 13 //PPT文档
FILE_TYPE_UNKNOWN = 14 //未知文档
-
模块中会引用常量模块提供的常量值
-
在测试模块中可以分别调用tools相关方法
//建一个测试模块,对tools进行测试test_module.py from datetime import datetime from trans import tools as trans_tools from work import tools as work_tools def test_trans_tool(): id1 = trans_tools.gen_trans_id() print(id1) date = datetime(2015,10,2,12,30,45) id2 = trans_tools.gen_grans_id(date) print(id2) def test_work_tool():
file_name = 'c:\users\yimal\desktop\test.JPG' //必须真是存在,否则返回false
rest = work_tools.get_file_type(file_name)
print(rest)
if __name__ == '__main__':
test_trans_tool()
test_work_tool()
网友评论