Импорт rembg в Celery Task разбивает рабочие

Я пытаюсь использовать библиотеку rembg в Celery worker (Django), но как только я импортирую библиотеку, рабочий завершается преждевременно:

objc[47160]: +[NSCharacterSet initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.


[2024-07-24 14:16:14,501: ERROR/MainProcess] Process 'ForkPoolWorker-16' pid:47160 exited with 'signal 6 (SIGABRT)'
[2024-07-24 14:16:14,514: ERROR/MainProcess] Message: Error: {'signal': <Signal: task_failure providing_args={'traceback', 'einfo', 'kwargs', 'task_id', 'exception', 'args'}>, 'sender': <@task: assets.tasks.image_background.remove of oml at 0x1046a5c50>, 'task_id': '6219ab75-62b5-4d14-88ac-034d9fa71d45', 'exception': WorkerLostError('Worker exited prematurely: signal 6 (SIGABRT) Job: 15.'), 'args': [], 'kwargs': {}, 'traceback': 'Traceback (most recent call last):\n  File "/Users/cesarrodriguez/.pyenv/versions/3.11.2/lib/python3.11/site-packages/billiard/pool.py", line 1264, in mark_as_worker_lost\n    raise WorkerLostError(\nbilliard.exceptions.WorkerLostError: Worker exited prematurely: signal 6 (SIGABRT) Job: 15.\n', 'einfo': <ExceptionInfo: ExceptionWithTraceback()>} Data: {}
[2024-07-24 14:16:14,514: ERROR/MainProcess] Task handler raised error: WorkerLostError('Worker exited prematurely: signal 6 (SIGABRT) Job: 15.')
Traceback (most recent call last):
  File "/Users/cesarrodriguez/.pyenv/versions/3.11.2/lib/python3.11/site-packages/billiard/pool.py", line 1264, in mark_as_worker_lost

Я не уверен, что это связано с проблемами многопроцессорной обработки, есть какие-нибудь мысли?

Похоже, что ошибка не связана с python, а является ошибкой Mac M1. После устранения ошибки в журнале:

[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called

Благодаря этому выпуску

Итак, выполните эту команду в текущей сессии bash:

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
Вернуться на верх