python脚本打包成exe可执行文件

最近测试的过程中,测试公众号注册登录功能,一个微信号要反复回归测试,就需要清理数据库里用户的微信openid,以及缓存中用户登录的uid记录和token记录,有时候还需要清除H5token对应的信息,每测试一次就需要手动根据手机号去user表查出记录,然后清除微信openid,然后根据查询出的uid,去缓存中查询出token,然后记录下values,然后删除key,然后再根据values反查后再删除查出的uid,测试一两次还可以,但是反复测试,清除数据很是繁琐,所以写了个python脚本,并打包成exe可执行文件,在此记录一下。

1、完成python脚本:wxopen_clean.py

 1 #python伪代码
 2 
 3 import pymysql
 4 phone = input("请输入要清除的手机号:").strip()
 5 #连接数据库清数据
 6 db = pymysql.connect(host,user,password,database)
 7 cursor = db.cursor()
 8 s = "select uid from user where phone = '%s';" % phone
 9 cursor.execute(s)
10 data = cursor.fetchone()
11 uid = data[0]
12 ss = "update user set wxopenid = Null where uid = '%s';" % uid
13 cursor.execute(ss)
14 db.commit()
15 db.close()
16 
17 #连接缓存
18 redis_pool = redis.ConnectionPool(host=host,port,password=passwd,decode_responses=True,db=0)
19 conn = redis.Redis(connection_pool=redis_pool)
20 # 获取token,其中a为缓存的key
21 a = 'user:login:app:uid:' + uid
22 r_token = conn.get(a)
23 if r_token:
24     conn.delete(a)
25     b = 'user:login:app:token:' + r_token
26     conn.delete(b)
27 
28 c = 'user:login:h5mark:uid:' + uid
29 h_token = conn.get(c)
30 if h_token:
31     conn.delete(c)
32     d = 'user:login:app:token:' + h_token
33     conn.delete(d)

2、将上述文件放在一个单独的文件夹内,然后将py文件中需要引用的第三方包:pymysql和redis在python的Lib目录下找到,然后复制到跟py文件同一个目录下:

python脚本打包成exe可执行文件

 

 

 其中,找了个ico的图标,这个需要从网上下载个图,然后使用icon在线转换器,转换成ico格式的文件,大小选择16*16,才可以用;

3、windows下cmd进入命令行,需要提前安装打包的包:pip install pyinstaller,安装成后,进入到上述py文件的目录位置,执行语句:

1 pyinstaller -F -i icon.ico wxopen_user.py

上述语句执行后,就会在同目录下生成多个文件:

python脚本打包成exe可执行文件

 

 

 4、可执行的exe文件在dist目录下,这下可以直接将该文件发送到桌面快捷方式,然后直接执行即可,如果有输入,则可以在弹出的黑窗户中进行输入;

期间遇到个问题,我原来的sql语句是:

1 "update user set wxopenid=Null  where uid = %s;" % uid

然后执行的时候,如果uid里包含字母,就会报错,如果全部是数字,运行是正常的,然后修改了一下,可以执行了,将uid取到后加了单引号:

"update user set wxopenid=Null  where uid = '%s' ;" % uid

 

上一篇:kerberos 激活JDBC连接hive


下一篇:java数据库连接