由于相关业务问题,需要在windows环境中开启多个flask服务,为了方便管理各个flask服务,需要进行注册成windows服务,在windows服务中进行自动开启状态。下面将分享在实际过程中的方法,避免小伙伴们遇到同样的问题。

步骤

1
2
3
4
5
6
# 1.安装flask、pyinstaller
# 2.下载nssm部署windows服务执行文件
# 3.准备flask开发的案例代码
# 4.使用pyinstaller将flask服务进行打包
# 5.解压nssm文件,指定打包文件和服务名称
# 6.测试最终结果是否正确

1.准备工作

1
2
python环境:3.6.8
windows环境:windows10

安装相关包如下,准备打包python代码

1
2
3
4
5
# 1.安装flask框架
pip install flask

# 2.安装pyinstaller包
pip install pyinstaller

下载nssm.zip文件,准备在windows上安装exe文件

1
2
# 下载地址
http://www.nssm.cc/release/nssm-2.24.zip

2.开始实际操作

flask代码开发,以下是个demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from flask import Flask, request,jsonify
app = Flask(__name__)


# 查询模型训练状态
@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)

3.开始打包

1
2
3
4
5
# 说明:(我在执行 pyinstaller -w admin.py时,打包过程中控制台正常没报错,打包完成以后进行dist文件,找到admin.exe双击启动时,提示创库显示执行失败。因为想程序占着控制台,所以执行的参数为 -w)
# 最终执行flask服务打包
pyinstaller -F admin.py

# 一下就是程序打包以后文件目录

4.开始进行注册windows服务

1
2
3
4
1.在cmd中进入nssm中的目录,然后进行命令
2. nssm install aiweb(服务名)
3. 选择Application path按钮将pyinstaller打包后的exe文件选择过来。
4.点击installer service按钮,则提示成功,此时去windows服务中查看服务即可。

5.测试windows服务

在服务中点击启动按钮,在浏览器中输入ip地址和端口号,如图:

最后大功告成,此方法可以将flask服务、爬虫服务都可以注册成windows服务,开机自启动。