我有Flask应用程序,可在Raspberry Pi的虚拟环境中运行。应用流式传输来自picamera的视频,并且可以接收其他一些请求。应用使用python run.py
可以正常工作。我想将应用程序配置为在重启后自动运行,并使用未内置的Flask服务器。我试过了Gunicorn和uwsgi。但是,运行gunicorn会导致CRITICAL WORKER TIMEOUT错误(可能是由于在process_stream.py
文件中加载了keras模型),并且运行uswgi也失败了,但是没有任何错误(生成了工作器,但相机未返回任何帧) 。有人可以分享一些有关这种情况的提示吗?
run.py
文件:
from app import app, processing_stream
if __name__ == "__main__":
processing_stream.start()
app.run(host='0.0.0.0', use_reloader=False)
app.py
文件:
import io
import os
import cv2
from flask import Flask, request, Response, render_template, send_file
from PIL import Image
from process_stream import ProcessStream
app = Flask(__name__)
app.config.from_object(os.environ['APP_SETTINGS'])
processing_stream = ProcessStream()
@app.route('/')
def index():
"""Video streaming"""
return render_template('index.html')
# some functions to retrieve information
def gen():
while processing_stream.running:
# yield frame
@app.route('/video_feed')
def video_feed():
return Response(gen(),
mimetype='multipart/x-mixed-replace; boundary=frame')