我正在尝试在 Raspberry Pi 上使用 PyQt5 和 Flask 来创建网络服务器/GUI 组合。这两个模块(据我所知)都想在主线程中工作,但我在网上发现了一些文章说 Flask 可以在子线程中运行。在主线程中启动 PyQt GUI 后,子线程中的 Flask 停止接受新连接。
有没有更好的方法来处理这两个模块的线程,或者有没有一种方法可以确保 Flask 继续接受新连接?
我的启动脚本:
import threading
import json
from flask import Flask, request, jsonify
import gui
app = Flask(__name__)
... (Flask GET/POST functions removed for readability) ...
def runServer():
app.run(debug=True, user_reloader=False, port=5000, host="192.168.1.142")
t1 = threading.Thread(target=runServer)
t1.start()
gui.start()
编辑: 启动脚本:
#! /bin/bash
export MIXER_PATH=/home/volume/RPi-VM-GUI/
export FLASK_APP=server.py
cd $MIXER_PATH
flask run --host=192.168.1.142 --port=5000 &
我相信我的问题在于如何调用该过程。如果我直接调用该过程而不调用flask,PyQt和Flask将同时运行
/home/volume/RPi-VM-GUI/server.py