У меня есть приложение Flask, которое работает в виртуальной среде на Raspberry Pi. Приложение потоковое видео с Picamera и может получать некоторые другие запросы. Приложение работает, как и ожидалось, используя python run.py
. Я хочу настроить приложение на автоматический запуск после перезагрузки и использовать не встроенный сервер Flask. Я попробовал Gunicorn и UWSGI. Однако запуск gunicorn вызывает ошибку CRITICAL WORKER TIMEOUT (возможно, из-за загрузки модели keras в файл process_stream.py
), а также запуск 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
file:
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')