1. 程式人生 > 其它 >python指令碼打包成exe可執行檔案

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檔案同一個目錄下:

其中,找了個ico的圖示,這個需要從網上下載個圖,然後使用icon線上轉換器,轉換成ico格式的檔案,大小選擇16*16,才可以用;

3、windows下cmd進入命令列,需要提前安裝打包的包:pip install pyinstaller,安裝成後,進入到上述py檔案的目錄位置,執行語句:

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

上述語句執行後,就會在同目錄下生成多個檔案:

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