解決打包過大的問題
用 Pyinstaller 打包 Python 程序 + 解決打包結(jié)果過大 >>
由于相關(guān)業(yè)務(wù)問題图焰,需要在windows環(huán)境中開啟多個(gè)flask服務(wù)鞠柄,為了方便管理各個(gè)flask服務(wù)猜丹,需要進(jìn)行注冊成windows服務(wù)鳖昌,在windows服務(wù)中進(jìn)行自動開啟狀態(tài)。下面將分享在實(shí)際過程中的方法涩惑,避免小伙伴們遇到同樣的問題仁期。
步驟
1.安裝flask、pyinstaller
2.下載nssm部署windows服務(wù)執(zhí)行文件
3.準(zhǔn)備flask開發(fā)的案例代碼
4.使用pyinstaller將flask服務(wù)進(jìn)行打包
5.解壓nssm文件竭恬,指定打包文件和服務(wù)名稱
6.測試最終結(jié)果是否正確
0.準(zhǔn)備工作
python環(huán)境:3.6.8
windows環(huán)境:windows10
安裝相關(guān)包如下跛蛋,準(zhǔn)備打包python代碼
1.安裝flask框架
pip install flask
2.安裝pyinstaller包
pip install pyinstaller
下載nssm.zip文件,準(zhǔn)備在windows上安裝exe文件
下載地址
http://www.nssm.cc/release/nssm-2.24.zip
3.開始實(shí)際操作
flask代碼開發(fā)痊硕,以下是個(gè)demo
from flask import Flask, request,jsonify
app = Flask(__name__)
# 查詢模型訓(xùn)練狀態(tài)
@app.route('/modelstatus', methods=['GET', 'POST'])
def train_status():
if request.method == 'GET':
return jsonify({'code': 200, 'status': 'false', 'msg': 'hello'})
else:
return jsonify({'code': 500, 'msg': '不支持該請求'})
if __name__ == '__main__':
app.run(host="0.0.0.0", port=9004)
4赊级、開始打包
說明:(我在執(zhí)行 pyinstaller -w admin.py時(shí),打包過程中控制臺正常沒報(bào)錯(cuò),打包完成以后進(jìn)行dist文件寿桨,找到admin.exe雙擊啟動時(shí)此衅,提示創(chuàng)庫顯示執(zhí)行失敗强戴。因?yàn)橄氤绦蛘贾刂婆_,所以執(zhí)行的參數(shù)為 -w)
最終執(zhí)行flask服務(wù)打包
pyinstaller -F -p D:\Work\pwork\ pc_main.py
-p 將依賴包目錄包含到打包范圍
5挡鞍、開始進(jìn)行注冊windows服務(wù)
- 在cmd中進(jìn)入nssm中的目錄骑歹,然后進(jìn)行命令
- nssm install aiweb(服務(wù)名)
- 選擇Application path按鈕將pyinstaller打包后的exe文件選擇過來。
- 點(diǎn)擊installer service按鈕墨微,則提示成功道媚,此時(shí)去windows服務(wù)中查看服務(wù)即可。
6.測試windows服務(wù)
在服務(wù)中點(diǎn)擊啟動按鈕翘县,在瀏覽器中輸入ip地址和端口號最域,此方法可以將flask服務(wù)、爬蟲服務(wù)都可以注冊成windows服務(wù)锈麸,開機(jī)自啟動镀脂。
原文鏈接:https://blog.csdn.net/mid_python/article/details/106239666