Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Flask SocketIO的后台任务中从另一个文件运行函数_Python_Flask_Flask Socketio - Fatal编程技术网

Python 如何在Flask SocketIO的后台任务中从另一个文件运行函数

Python 如何在Flask SocketIO的后台任务中从另一个文件运行函数,python,flask,flask-socketio,Python,Flask,Flask Socketio,我正在使用Flask SocketIO开发一个用于人脸识别的Flask应用程序。我想在后台启动face_recognition应用程序,当一个人被识别时,它将从服务器向JS客户端发送这个名字。在app.py文件中导入face_rec.py文件时,出现以下错误。 错误: Using TensorFlow backend. Server initialized for gevent. Traceback (most recent call last): File "E:/Innovo/

我正在使用Flask SocketIO开发一个用于人脸识别的Flask应用程序。我想在后台启动face_recognition应用程序,当一个人被识别时,它将从服务器向JS客户端发送这个名字。在app.py文件中导入face_rec.py文件时,出现以下错误。 错误:

Using TensorFlow backend.
Server initialized for gevent.
Traceback (most recent call last):
  File "E:/Innovo/face_recog/Recoginition/app.py", line 77, in <module>
    socketio.run(app)
  File "C:\ProgramData\Anaconda3\lib\site-packages\flask_socketio\__init__.py", line 609, in run
    monkey.patch_thread()
  File "C:\ProgramData\Anaconda3\lib\site-packages\gevent\monkey.py", line 178, in ignores
    return func(*args, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\gevent\monkey.py", line 588, in patch_thread
    _patch_existing_locks(threading_mod)
  File "C:\ProgramData\Anaconda3\lib\site-packages\gevent\monkey.py", line 487, in _patch_existing_locks
    if isinstance(o, rlock_type):
ReferenceError: weakly-referenced object no longer exists
import faceRec_wihtout_mask
from flask_socketio import SocketIO, emit
from flask import Flask, render_template, url_for
from random import random
from time import sleep
from threading import Thread, Event 

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
app.config['DEBUG'] = True
#turn the flask app into a socketio app
socketio = SocketIO(app, async_mode=None, logger=True, engineio_logger=True)


thread = Thread()
thread_stop_event = Event()

def face_rec():
    while not thread_stop_event.isSet():
        faceRec_wihtout_mask.main('video')
        



@app.route('/')
def index():
    return render_template('index.html')

@socketio.on('connect',namespace='/test')
def test_connect():
    # need visibility of the global thread object
  global thread
    print('Client connected')
    

    if not thread.isAlive():
        print("Starting Thread")
        thread = socketio.start_background_task(face_rec)

@socketio.on('disconnect', namespace='/test')
def test_disconnect():
    print('Client disconnected')


if __name__ == '__main__':
    socketio.run(app)