问题描述
在使用如下flask代码时候,出现了zmq.error.ZMQError: Address already in use
的错误
from flask import Flask, request, redirect, url_for, flash, jsonify
import numpy as np
import pickle as p
import json
app = Flask(__name__)
@app.route('/api/', methods=['POST'])
def makecalc():
data = request.get_json()
prediction = np.array2string(model.predict(data))
return jsonify(prediction)
if __name__ == '__main__':
modelfile = 'models/final_prediction.pickle'
model = p.load(open(modelfile, 'rb'))
app.run(debug=True, host='0.0.0.0')
解决方法
-
flask的debug模式会额外开启一个进程,这个进程负责监控代码是否发生变化,即DEBUG模式下flask多开一个线程来监视项目的变化,因此可以关闭debug模式。
-
当然如果你还是需要debug来提供更多详细日志, 可以尝试加入use_reloader 选项
app.run(debug=True, host='0.0.0.0', use_reloader=False)