Я знаю, что вопрос немного устарел, но я столкнулся с той же проблемой и нашел простое решение. Однако это, вероятно, зависит от того, что вы хотите сделать с matplotlib
внутри celery
.
Если вы, как и я, имеете долгосрочную работу с сельдереем, которая вычисляет некоторые значения, которые вы хотите отобразить в файле статического изображения , тогда мой ответ должен сработать.
В основном проблема связана с бэкэндами matplotlib. Как вы можете видеть в документации https://matplotlib.org/faq/usage_faq.html#what-is-a-backend,, вы можете выбрать серверную часть, которая будет отображать графики. И у вас есть интерактивные и неинтерактивные бэкэнды. Если, как и я, вы хотите только строить графики и сохранять их в статических файлах, вам не нужен стандартный интерактивный бэкэнд.
По какой-то неизвестной причине бэкэнд по умолчанию не работает на сельдерее и поднимает SIGSEGV , и, таким образом, мне помогло указать другой бэкэнд во время импорта:
import matplotlib
matplotlib.use("Agg")
Надеюсь, это поможет.