Я пытаюсь использовать multiprocessing.Process () для вызова функции big_task () каждый раз, когда получен запрос, чтобы функция (которая требует времени для вычисления) могла выполняться на моем компьютере, в то время как фляга может работать параллельно и прослушиватьдля запросов.Но я получаю сообщение об ошибке:
RuntimeError: No root path can be found for the provided module "__mp_main__". This can happen because the module came from an import hook that does not provide file name information or because it's a namespace package. In this case, the root path needs to be explicitly provided.
На основании другого ответа SO я попытался указать аргумент root_path при вызове app = Flask ( name , root_path: "C: / Users /.. ");
Теперь я получаю еще одну ошибку:
AttributeError: module '__main__' has no attribute '__file__'
Это мой примерно мой текущий код:
import numpy as np
import tensorflow as tf
def big_task(arr):
#some data manipulations using numpy
app=Flask(__name__,root_path="C:/Users/.../app")
@app.route("/home")
def home():
k=request.form['arr']
p=multiprocessing.Process(target=big_task,args=k)
p.start()
return 'ok'
if __name__=="__main__":
app.run(debug=False)
Я новичок в колбе, и донЯ не совсем понимаю, почему происходит эта ошибка.Я думаю, что это что-то, связанное с созданием колбой своих состояний или контекстов, или что-то, связанное с тем, что окна не способны создавать новый процесс.Может ли кто-нибудь дать хорошее объяснение?