我的烧瓶应用程序使用了以下扩展名:
Python 3.7.2
Flask 1.0.2
Celery 4.3.0rc2
dlib 19.6
没有芹菜,作为用于面部检测的常规单线程程序,一切正常,但是当我将其作为任务启动时,会发生以下错误:
任务处理程序引发错误:WorkerLostError('Worker过早退出: 信号11(SIGSEGV)。')
这段代码:
dlib.cnn_face_detection_model_v1(model)
我不明白为什么,但是有了这个:
dlib.get_frontal_face_detector()
工作正常!
我知道由dlib
(或BLAS
)引起的冲突不是线程安全的,但是有什么方法可以禁用多处理功能,或者使芹菜工作者使用此功能吗?
UPD : 我有以下项目结构:
./app/face_detector.py
./tasks.py
在tasks.py
中,我在文件顶部使用了它:
from app.face_detector import FaceDetector
在任务内部导入的窍门:
@app.task
def foo():
from app.face_detector import FaceDetector
根本不起作用,并抛出此错误:
未命名模块...
所以,我不理解github线程的解决方案,或者它不起作用