Python 芹菜任务因dlib cnn人脸检测失败
我使用了具有以下扩展的flask应用程序:Python 芹菜任务因dlib cnn人脸检测失败,python,celery,dlib,Python,Celery,Dlib,我使用了具有以下扩展的flask应用程序: Python 3.7.2 Flask 1.0.2 Celery 4.3.0rc2 dlib 19.6 没有芹菜,作为人脸检测的常规单线程程序,一切正常,但当我将其作为任务启动时,会出现以下错误: 任务处理程序引发错误:WorkerLosterError('工作进程过早退出: 信号11(SIGSEGV)。” 关于这段代码: dlib.cnn_face_detection_model_v1(model) 我不明白为什么,但有了这个: dlib.get_
Python 3.7.2
Flask 1.0.2
Celery 4.3.0rc2
dlib 19.6
没有芹菜,作为人脸检测的常规单线程程序,一切正常,但当我将其作为任务启动时,会出现以下错误:
任务处理程序引发错误:WorkerLosterError('工作进程过早退出:
信号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
中,我在文件顶部使用以下命令:
从app.face\u detector导入FaceDetector
任务内部导入的技巧:
@app.task
def foo():
from app.face_detector import FaceDetector
根本不起作用并抛出以下内容:
没有名为
因此,我不理解github线程的解决方案,或者该解决方案不起作用我有一个类似的问题,我尝试按照线程的建议在任务中内联导入该解决方案,它起作用了me@Mntfr我看过这个帖子,但是没有得到导入no的东西(如果你是这个意思的话),你能更详细地解释一下吗?我非常感谢您的事件前/事件后示例。No是一个作为dlib的深度学习库,所以它说您可以导入dlib。。。在子流程中,不在父模块中导入。